From IndieWeb
(Redirected from irc)
Jump to: navigation, search

This page is about the IRC protocol. For details on the IndieWeb IRC channels on Freenode, see discuss.

What is IRC

Internet Relay Chat (abbreviated IRC), in particular the #indieweb channel on the server, is the primary community discussion forum for IndieWebCamp and anything about the IndieWeb.

People on IRC

Main article: chat-names

See our list of chat regulars sorted by nickname, with their website and usual timezone(s).

The channel has regular administrators, who are also wiki administrators. If you want to get their attention, just say "adminhelp".


If the logs have stopped logging or have any other problems, notify Aaron Parecki on the IRC channel.

Logs on Your iPhone Home Screen

To add the IRC logs to your iPhone home screen, visit the page below on your phone:

Follow the link on that page. Then, from Safari, add that page to your home screen.

Joy Division album cover style chart of 90 days of IRC activity

IRC Log Atom Feed

(Currently unavailable)

An experimental atom feed is available for the IRC logs. This feed delivers the last full day's log to your feed reader.

Please report any feed issues to


We have the most awesome IRC logs on the web. That doesn't mean they can't be even more awesome. Got an idea, suggestion, or issue to report about the logs? Create or comment on a GitHub issue:


Occasionally, Freenode gets hit with a wave of IRC spam. Typically the pattern is an account joins many channels across Freenode and sends repeated similar messages to as many channels as it can, often mentioning other peoples' nicknames in order to get their attention.

  • Anyone registered on chat-names can kick users by telling Loqi to kick them using !kick spammer
  • Any channel op in our channels can also /kick spammer to remove them from the specific channel immediately
  • Other Freenode admins often catch the bots and block them from the server

Red Alert Mode

In very large spam waves, such as the one starting on 2018-07-31, we can employ additional tricks to prevent the spam from hitting the channels at all.

  • Set everyone currently in the channel to +v (/voice nickname)
  • Set the channel modes to +zm (/mode #indieweb-dev +zm)
    • +m means only people with +v mode can speak in the channel
    • +z allows channel ops to still see the messages from unvoiced users, so Loqi can still see messages from new people and spammers
    • (If the channel is in MLOCK mode, use /msg chanserv set #indieweb-dev mlock +zm)
  • When someone joins a channel, Loqi sets a timer for 30 seconds. If they are still in the channel after 30 seconds, they are automatically given +v
  • When an unvoiced user says something, if it matches a spam keyword phrase, they are immediately kicked.
    • If it does not match a spam phrase, then Loqi says "Welcome, {nickname}. Since you weren't yet recognized as a real person, your message wasn't sent to the channel. I'm repeating it below for you.", repeats their message to the channel, and sets +v
    • If the spam does not consistently match a pattern, this last rule can be dropped

To stand down from red alert, set the channel modes back to -zm, and disable Loqi's auto-voicing hooks.

  • /mode #indieweb-dev -zm

Spam in Chat Logs

The IndieWeb chat logs are all stored as files in a GitHub repo, which is where the web interface pulls from. Individual lines in the file can be marked as deleted to avoid them being shown in the web interface. This should only be used to block actual spam, not remove legitimate text from users, even if it is something you don't agree with.

To help remove spam from the logs, you can send a pull request to the chat archive repo to mark specific lines as deleted. Find the specific file containing the messages, and then find the specific chat line to mark as deleted. Each line in the file corresponds to a single IRC message, and begins with a timestamp, followed by a JSON string with the log info. To mark as deleted, add "deleted":true as the first property in the JSON text.

For example, change:

2018-01-01 01:05:10.931300 {"type":"message", ... 


2018-01-01 01:05:10.931300 {"deleted":true,"type":"message", ... 

Send a pull request containing all your edits together, like this one. Anyone with write access to the repo can merge the change, and Aaron Parecki will then deploy it to the server. This will prevent the spam from being shown in the web logs.

How-to remove spam

This is how Martijn van der Ven has been removing spam from the logs:

  1. Find the log file with spam in it on GitHub.
    1. Go to the GitHub archive.
    2. Choose the folder of the matching channel.
    3. Follow a folder structure down to the specific day’s log file. Note that days are in UTC.
  2. Use GitHub’s editor by clicking the pencil icon.
  3. Copy the entire file to a plain text editor with regular expression find and replace support. (E.g. BBEdit.)
  4. Run a find and replace that marks all lines from a specified user as deleted.
    • Match the pattern: (^[0-9:. -]+ {)(.+?,"author":{"uid":"spammername"). Replace spammername with the actual name of the spammer.
    • Replace it with: \1"deleted":true,\2.
  5. Copy it all back into GitHub’s editor, making sure it ends with exactly 1 empty line.
  6. Give it a clear title in the “Propose file change” section identifying what spam you have removed.
  7. Press the (green) “Propose file change” button.
  8. Check the diff to double check you haven’t made any destructive changes.
  9. Press the (green) “Create pull request” button.
  10. The pull request should be auto-filled with the title from step 6. If the title was clear enough you do not need to write anything more, otherwise comment on why/what you changed in the logs.

Please also send an email to remove the spam from logs per

Send me an email or message me on IRC ("glob" on if there's data that you feel should be scrubbed (eg. spam, accidental leakage of passwords, etc).

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.

Setup your client to connect with the following:

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.

Freenode Services

The #indieweb IRC channel is hosted on the 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 freenode webchat:


Anecdotally the channel seems quite active:

  • 08:00-10:00 Pacific Time (-0800/-0700)
    • 16:00-18:00 UK Time (+0000/+0100)
    • 17:00-19:00 EU Time (+0100/+0200)

Bots on IRC

The IRC channel uses these bots:

  • Loqi - Contact: aaronpk, wiki page
    • logs all edits to this wiki
    • logs the irc channel itself to archives on the web
    • logs Twitter mentions of #indieweb or #indiewebcamp to the channel
    • logs webmentions of wiki pages
  • Kaja - Contact: Sven Knebel
    • microformat parsing commands
    • indieweb youtube channel announcements

want to write your own bots: see #bot development

Getting started with IRC

Please note: These directions relate specifically to the services that Freenode 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:
  • 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 Freenode, 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 Freenode'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


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?


The following clients are recommended by #indieweb participants:



  • HexChat — Actively developed fork of X-chat. Windows and Linux binaries available.
  • mIRC — Popular Windows client. Trial version only.
  • AdiIRC — Simple C# based IRC client.
  • Miranda — Lightweight, muti-protocol instant messenger.



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
  • 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:


Need to identify via SASL

If you get an error message like:

*** Notice -- You need to identify via SASL to use this server


  • If you're on Colloquy on Mac, there are two possible fixes in increasing difficulty:
  • 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 ( 15:47, 14 March 2013 (PDT))


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

Freenode 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 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

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

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 Freenode’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 [1].

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:*
  • see extbans for details on $x
  • 2020-04-21 the discord bridge invite page at is down, and we cannot get in touch with the people who set it up. additionally, it appears only two people have ever used the discord bridge, one of who connects via other means as well. we are disabling the bridge via IRC ban because most of the users are idling and it makes the channel look bigger than it is, increasing the amount of spam or random off-topic messages we get. ~ Aaron Parecki

bot development


See Also