
OpenClaw Integration with IRC

By Sarah Jenkins


By Sarah Jenkins
Use IRC when you want OpenClaw in classic channels (#room) and direct messages. IRC ships as an extension plugin, but it is configured in the main config under channels.irc.
~/.openclaw/openclaw.json.{
channels: {
irc: {
enabled: true,
host: "irc.libera.chat",
port: 6697,
tls: true,
nick: "openclaw-bot",
channels: ["#openclaw"],
},
},
}openclaw gateway runchannels.irc.dmPolicy defaults to "pairing".channels.irc.groupPolicy defaults to "allowlist".groupPolicy="allowlist", set channels.irc.groups to define allowed channels.channels.irc.tls=true) unless you intentionally accept plaintext transport.There are two separate “gates” for IRC channels:
groupPolicy + groups): whether the bot accepts messages from a channel at all.groupAllowFrom / per-channel groups["#channel"].allowFrom): who is allowed to trigger the bot inside that channel.Config keys:
channels.irc.allowFromchannels.irc.groupAllowFromchannels.irc.groups["#channel"]channels.irc.groupPolicy="open" allows unconfigured channels (still mention-gated by default)Allowlist entries should use stable sender identities (nick!user@host). Bare nick matching is mutable and only enabled when channels.irc.dangerouslyAllowNameMatching: true.
allowFrom is for DMs, not channelsIf you see logs like:
irc: drop group sender alice!ident@host (policy=allowlist)…it means the sender wasn’t allowed for group/channel messages. Fix it by either:
channels.irc.groupAllowFrom (global for all channels), orchannels.irc.groups["#channel"].allowFromExample (allow anyone in #tuirc-dev to talk to the bot):
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": { allowFrom: ["*"] },
},
},
},
}Even if a channel is allowed (via groupPolicy + groups) and the sender is allowed, OpenClaw defaults to mention-gating in group contexts.
That means you may see logs like drop channel … (missing-mention) unless the message includes a mention pattern that matches the bot.
To make the bot reply in an IRC channel without needing a mention, disable mention gating for that channel:
{
channels: {
irc: {
groupPolicy: "allowlist",
groups: {
"#tuirc-dev": {
requireMention: false,
allowFrom: ["*"],
},
},
},
},
}Or to allow all IRC channels (no per-channel allowlist) and still reply without mentions:
{
channels: {
irc: {
groupPolicy: "open",
groups: {
"*": { requireMention: false, allowFrom: ["*"] },
},
},
},
}If you allow allowFrom: ["*"] in a public channel, anyone can prompt the bot. To reduce risk, restrict tools for that channel.
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
tools: {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
},
},
},
},
}Use toolsBySender to apply a stricter policy to "*" and a looser one to your nick:
{
channels: {
irc: {
groups: {
"#tuirc-dev": {
allowFrom: ["*"],
toolsBySender: {
"*": {
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
},
"id:eigen": {
deny: ["gateway", "nodes", "cron"],
},
},
},
},
},
},
}Notes:
toolsBySender keys should use id: for IRC sender identity values: id:eigen or id:eigen!~eigen@174.127.248.171 for stronger matching.id: only."*" is the wildcard fallback.For more on group access vs mention-gating (and how they interact).
To identify with NickServ after connect:
{
channels: {
irc: {
nickserv: {
enabled: true,
service: "NickServ",
password: "your-nickserv-password",
},
},
},
}Optional one-time registration on connect:
{
channels: {
irc: {
nickserv: {
register: true,
registerEmail: "bot@example.com",
},
},
},
}Disable register after the nick is registered to avoid repeated REGISTER attempts.
Default account supports:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS (comma-separated)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAILchannels.irc.groups and whether mention-gating is dropping messages (missing-mention). If you want it to reply without pings, set requireMention:false for the channel.About the author

Sarah Jenkins is a seasoned OpenClaw developer with a strong focus on optimizing high-performance computing solutions. Her work primarily involves crafting efficient parallel algorithms and enhancing GPU acceleration for complex scientific simulations. Jenkins is renowned for her meticulous attention to detail and her ability to translate intricate theoretical concepts into practical, robust OpenClaw implementations.

by Sarah Jenkins
by Sarah Jenkins