What is it?

ZNC is an IRC bouncer - you log into ZNC and it logs into the IRC network for you, and routes messages between you and the server. This means that all sorts of interesting features can be added in the middle:

  • When you quit IRC, ZNC can keep you logged into the server and play back messages you missed when you return.
  • You can connect to ZNC from multiple locations at the same time and be seen as the same user on the IRC network.
  • ZNC has many modules that handle many things you would normally require scripts for, even when you are logged out.

What networks are available?

At present, the following IRC networks are available:

  • The general I2P IRC network, hosted on irc.postman.i2p, irc.freshcoffee.i2p and irc.echelon.i2p
  • The Project PM IRC network, hosted on the clearnet and accessible via their I2P tunnel
  • The Anarplex IRC network, hosted on agora.anarplex.i2p

If you know of another IRC network that is available, please contact me and let me know!

A distinction needs to be made between "servers" and "networks": ZNC supports multiple servers, but as backups for a single network - it is only ever connected to one server at a time. (But since I2P handles the different IRC servers as part of the client connection, this feature is unneeded.) Thus, you must have a separate ZNC username for each I2P IRC network you wish to be connected to, though these can all have the same IRC username.

What modules are available?

The following ZNC modules are available. For more information about modules, see the ZNC wiki.

  • antiidle - Hides your real idle time
  • autoattach - Reattaches you to channels on activity
  • autocycle - Rejoins channels to gain Op if you're the only user left
  • autoop - Auto op the good guys
  • autoreply - Reply to queries when you are away
  • autovoice - Auto voice the good guys
  • away - Stores messages while away, also auto away
  • awaynick - Change your nick while you are away
  • block_motd - Block the MOTD from IRC so it's not sent to your client(s)
  • buffextras - Add joins, parts etc. to the playback buffer
  • chansaver - Keep config up-to-date when user joins/parts
  • charset - Normalizes character encodings
  • clientnotify - Notifies you when another IRC client logs into or out of your account
  • crypt - Encryption for channel/private messages
  • ctcpflood - Don't forward CTCP floods to clients
  • disconkick - Kicks the client from all channels when the connection to the IRC server is lost
  • fakeonline - Fakes online status of ZNC *-users
  • flooddetach - Detach channels when flooded
  • keepnick - Keep trying for your primary nick
  • nickserv - Auths you with NickServ
  • notes - Keep and replay notes
  • perform - Keeps a list of commands to be executed when ZNC connects to IRC
  • raw - View all of the raw traffic
  • route_replies - Send replies (e.g. to /who) to the right client only
  • savebuff - Stores channel buffers to disk, encrypted
  • schat - Secure cross platform (:P) chat system
  • simple_away - Auto away when last client disconnects
  • stickychan - configless sticky chans, keeps you there very stickily even
  • watch - Copy activity from a specific user into a separate window
Users cannot load or unload modules themselves; if you would like to make a change, please contact me.

If you know of other modules that would be useful, please contact me and let me know!

What are the Terms of Service?

I was going to put some stuff in here, but I have now managed to disable the troublesome parts of ZNC, and I can't really see much scope for problems. However, if anything does become apparent once people start using the service (as likely it will), I reserve the right to add things to the ToS. And if people are somehow abusing the service, I will attempt to contact/reason with them over IRC, but failing that I will block or delete accounts. So play nice =)

Sounds cool. What do I need to do?

  1. Send me an email with your desired ZNC username, your desired IRC username, the network you want the ZNC username to be assocciated with, and the names of any modules that you would like enabled.
  2. Create a new standard client tunnel with the following settings:
    • Name(N): znc.str4d.i2p
    • Access Point: Port: something unused e.g. 6669
    • Tunnel Destination(T): znc.str4d.i2p
    • Auto Start(A): probably Yes
    • Profile(f): interactive connection
    • Tune other settings to your threat model.
  3. Connect your IRC client to localhost:6669 or whatever port you set, with server password in the form [znc_username]:[znc_password]. The IRC command for this would be "/connect localhost 6669 [znc_username]:[znc_password]".
  4. ...?
  5. Profit!