Skip to content

IRC

IRC is an old protocol with a new relevance — it’s still the quickest way to get AI Butler into a room full of humans with zero corporate gatekeeping, and the text-only constraints force the agent to be concise. The IRC adapter speaks the classic protocol with SASL auth, NickServ, and channel joins.

  • Connect to any IRC network (Libera.Chat, OFTC, Freenode successors, internal corp IRC)
  • 1:1 private messages and multi-user channel support
  • SASL authentication (PLAIN and EXTERNAL)
  • Automatic reconnection on network drops
  • Text-only responses (no images, cards, or voice — it’s IRC)
  1. Pick an IRC network. Popular choices: Libera.Chat, OFTC, or a corporate internal server.
  2. Connect from any IRC client (Weechat, HexChat, irssi) and register a nick with NickServ:
    /msg NickServ REGISTER your_password your_email@example.com
  3. Verify the registration per the network’s instructions (usually clicking a link in the confirmation email)
Terminal window
aibutler vault set irc_server irc.libera.chat:6697
aibutler vault set irc_nick aibutler
aibutler vault set irc_sasl_user your_nick
aibutler vault set irc_sasl_password your_nickserv_password

Use :6697 for TLS (standard on modern networks) or :6667 for plaintext (don’t).

configurations:
channels:
active:
- irc
irc:
tls: true
channels:
- "#ai-butler"
- "#your-project"
Terminal window
aibutler run

You should see irc: connected and irc: joined #channel in the logs.

In a channel, address the bot by nick:

<user> aibutler: what's the weather looking like today?
<aibutler> I'll need to check — looking it up...

In a private message, just type — no prefix needed:

/query aibutler
<you> what do you remember about my current project?
<aibutler> Your current project is launching AI Butler v0.1...
FeatureSupported
1:1 private messagesYes
Channel messages (with nick prefix)Yes
SASL PLAIN authYes
SASL EXTERNAL (client cert)Yes
NickServ identify fallbackYes
TLSYes
IPv6Yes
Auto-reconnectYes (exponential backoff)
CTCP responsesMinimal (PING, VERSION, TIME)
File transfers (DCC)No — IRC DCC is dangerous, use Slack/Discord for file exchange
VoiceNo

“Can’t join channel — +r mode required.” Some networks require a registered nick to join certain channels. Make sure your SASL auth is configured and the nick is registered with NickServ.

Bot joins but doesn’t respond. Check the nick-matching logic: the bot only responds when its exact nick is at the start of a channel message followed by : or ,. Private messages work without any prefix.

Rate limiting / “you’re sending too fast” errors. IRC networks throttle aggressive bots. The adapter has a built-in 500ms minimum delay between sends, but you may need to increase it for busy channels. Set configurations.channels.irc.send_delay_ms: 1000 in config.