IRC

Classic IRC integration supporting channels and DMs with TLS, NickServ auth, mention gating, and per-channel tool policies.

IRC is OpenClaw's integration for the classic Internet Relay Chat protocol, connecting your AI agent to any IRC server that speaks standard IRC over plain TCP or TLS. It ships as an extension plugin but is configured directly in the main OpenClaw config under channels.irc — no separate plugin install needed. Libera.Chat and OFTC are the two most commonly used servers. The setup is remarkably simple: specify a server hostname, port, nick, and a list of channels to join. Enable TLS for encrypted connections (port 6697 is standard), optionally configure NickServ identification, and start the gateway. The bot joins the specified channels and starts listening. IRC is text-only — no images, files, reactions, or rich formatting — which makes it the leanest OpenClaw channel integration. Access control in IRC has two separate gates: channel access (groupPolicy + groups) controls whether the bot accepts messages from a channel at all, and sender access (groupAllowFrom / per-channel allowFrom) controls who can trigger the bot inside allowed channels. This dual-layer model prevents unauthorized prompting in public channels. Mention gating is on by default — the bot only responds when its nick is mentioned in group messages. Per-channel tool policies (toolsBySender) let you restrict which tools are available in different channels and even for different senders within the same channel. This is critical for public IRC channels where anyone might address the bot. The integration also supports nick collision handling (433 error recovery) and disables block streaming by default to suit IRC's line-by-line message format.

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

Public 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)