IRC
Classic IRC integration supporting channels and DMs with TLS, NickServ auth, mention gating, and per-channel tool policies.
Tags: messaging, open-protocol, classic, text-only
Category: Messaging
Use Cases
- AI assistant in open-source project IRC channels (Libera.Chat, OFTC)
- Text-only AI chat for minimalist/terminal-centric users
- Public Q&A bot in IRC channels with restricted tool access
- Internal team communication bot on private IRC servers
- Retro/nostalgic AI chat experience for IRC communities
Tips
- Always use TLS (port 6697) — plaintext IRC is unencrypted and visible to network operators
- Register your bot's nick with NickServ to prevent others from impersonating it
- Use per-channel tool restrictions for public channels: deny runtime, fs, gateway, nodes, cron, browser
- Set allowFrom: ["*"] on specific channels if you want anyone to talk to the bot there — but restrict tools
- For private channels, use strict sender allowlists with full nick!user@host patterns
- Set requireMention: false only in dedicated bot channels where every message should get a response
- Monitor with 'openclaw logs --follow' to debug access control drops
Known Issues & Gotchas
- allowFrom is for DMs only, NOT for channel messages — use groupAllowFrom or per-channel allowFrom for group/channel sender access
- If you see 'irc: drop group sender alice!ident@host (policy=allowlist)', the sender wasn't in groupAllowFrom — not in allowFrom
- Even if a channel is allowed and the sender is allowed, mention-gating is on by default — the bot ignores messages that don't mention its nick
- Bare nick matching (without user@host) is mutable and insecure — only enabled with dangerouslyAllowNameMatching: true
- IRC nick collision (error 433) can happen if another user/client has the same nick — OpenClaw handles recovery but you may see temporary disconnects
- IRC messages have a ~512 byte limit including protocol overhead — long agent responses are auto-chunked into multiple lines
- The bot joins channels on connect — if you change the channels list, restart the gateway
- TLS should always be enabled unless you're on a local/trusted network
Alternatives
- Discord
- Matrix
- Mattermost
- Telegram
Community Feedback
OpenClaw Channel Spotlight: IRC — How OpenClaw integrates with IRC as an extension plugin configured under the main config. Setup involves specifying server details and joining channels.
— Dev.to
Connect OpenClaw to IRC in 4 Steps — the easiest channel setup. OpenClaw's IRC channel connects to any server that speaks the standard IRC protocol over plain TCP or TLS.
— Stack Junkie
IRC: disable block streaming by default — IRC's line-by-line nature doesn't suit streaming edits. Fixed by disabling it for the IRC channel.
— GitHub Issues
Frequently Asked Questions
Is IRC setup really easier than Telegram or Discord?
For the basics, yes — there's no bot token, developer portal, or OAuth flow. You just specify a server, nick, and channels. But IRC lacks rich features (no media, reactions, buttons), so 'easy' depends on what you need.
Why doesn't my bot respond in channels even though it joined?
Three likely causes: 1) Mention gating is on by default — the bot only responds when its nick is mentioned. Set requireMention: false to change this. 2) The sender isn't in groupAllowFrom. 3) The channel isn't in the groups allowlist.
Can I send images or files through IRC?
No. IRC is text-only. OpenClaw's IRC channel doesn't support images, files, audio, video, reactions, or any rich media. For media support, use Discord, Matrix, or Telegram.
How do I authenticate my bot's nick with NickServ?
Set channels.irc.nickServPassword in your config. OpenClaw will automatically identify with NickServ after connecting. Register the nick first on the IRC server with /msg NickServ REGISTER <password> <email>.
Is IRC traffic encrypted?
With TLS enabled (tls: true, port 6697), the connection between OpenClaw and the IRC server is encrypted. However, IRC messages are visible to server operators and aren't end-to-end encrypted between users. For E2EE, use Matrix or Signal instead.
What does the duplicate instance bug (433) mean?
Error 433 means another client with the same nick is already connected. This can happen if the bot didn't cleanly disconnect from a previous session. OpenClaw handles nick collision recovery automatically, but you may see brief disconnects.
Configuration Examples
Basic Libera.Chat setup
channels:
irc:
enabled: true
host: "irc.libera.chat"
port: 6697
tls: true
nick: "openclaw-bot"
channels:
- "#openclaw"
dmPolicy: pairingPublic channel with restricted tools
channels:
irc:
enabled: true
host: "irc.libera.chat"
port: 6697
tls: true
nick: "mybot"
groupPolicy: allowlist
groups:
"#my-channel":
allowFrom:
- "*"
requireMention: true
tools:
deny:
- "group:runtime"
- "group:fs"
- "gateway"
- "nodes"
- "cron"
- "browser"Open channel without mention gating
channels:
irc:
enabled: true
host: "irc.example.com"
port: 6697
tls: true
nick: "ai-bot"
groupPolicy: open
groups:
"*":
requireMention: false
allowFrom:
- "*"Installation
Built-in (extension plugin, configured in main config)