Auth model
IRC server connection + nick identity + channel access rules
Minimal interface, maximal need for explicit access controls.
IRC for OpenClaw focuses on server connectivity, nick identity, channel versus DM rules, and allowlist-first operation on classic networks.
Auth model
IRC server connection + nick identity + channel access rules
Safety stance
On IRC, allowlists and pairing posture matter more than visual onboarding polish.
Verification ritual
Test DM flow, one private channel, and one public-but-controlled room before trusting broader access.
Rollout mode
20–35 min setup
Classic network discipline
OpenClaw’s IRC lane is core and straightforward, but it expects stable sender identities like `nick!user@host`, pairing for DMs by default, and allowlist-first handling for channels.
Watch the gates
A loose allowlist can expose the bot to noisy public channels faster than operators expect.
IRC is a viable OpenClaw lane when you need a bot inside a classic text network, but it rewards operators who think in explicit gates. The connection can be healthy, the bot can join a channel, and it can still remain silent by design.
IRC is not the easiest first channel, but it is still useful when your real audience already lives on IRC or when you want a lightweight, scriptable network surface with stable room naming.
What makes it attractive is also what makes it easy to misread:
Upstream’s default posture reflects that reality:
dmPolicy defaults to pairinggroupPolicy defaults to allowlistchannels.irc.tls=trueThose defaults are conservative for a reason. IRC can become noisy very quickly if you treat joined channels as automatically trusted.
The official docs describe two explicit access gates, but in practice operators should think in three layers.
Before policy matters, the bot has to connect cleanly:
If this layer fails, you do not have an access-control problem. You have a connection or login problem.
Upstream frames the first policy gate as whether the bot accepts messages from a channel at all.
That is controlled by:
groupPolicygroupsWith groupPolicy: 'allowlist', you must explicitly define the channels you want to support.
Even after a channel is allowed, two more checks still matter:
The docs separate these controls clearly:
allowFromgroupAllowFrom or groups['#channel'].allowFromrequireMentionThis is the part new operators get wrong most often.
allowFromis for DMs. It does not grant channel speakers permission inside IRC channels.
A safe first rollout for IRC looks like this:
{
channels: {
irc: {
enabled: true,
host: 'irc.example.net',
port: 6697,
tls: true,
nick: 'openclaw',
dmPolicy: 'pairing',
groupPolicy: 'allowlist',
groups: {
'#ops-bot': {
allowFrom: ['nick!user@host'],
requireMention: true,
},
},
},
},
}
Why this shape works:
The first validation target is not “did the bot join.” It is “did the bot connect in a durable, identifiable way.”
Start with:
The official docs include a nickserv block for this exact purpose.
If the network requires NickServ and you skip it, later policy debugging becomes noise because the real failure happened much earlier.
The upstream docs make the first group gate explicit:
groupPolicy='allowlist' means only configured channels are activegroupPolicy='open' allows unconfigured channels, but they are still mention-gated by defaultFor most operators, allowlist is the correct starting point.
That keeps your rollout legible. You know exactly which rooms are supposed to work, and you can reason about silence as policy instead of guessing whether the bot noticed the room.
This is the most important IRC-specific distinction in the official docs.
If the bot joins #ops-bot, that still does not answer who may talk to it there.
Use either:
groupAllowFrom for a global channel-sender allowlist,groups['#channel'].allowFrom for per-channel control.Use stable identities where possible:
nick!user@hostThe docs are explicit that bare nick matching should only be enabled with dangerouslyAllowNameMatching: true.
That wording is a clue, not decoration. If you need the dangerous mode, treat it as a compatibility exception and document why.
Even in an allowed channel with an allowed sender, OpenClaw defaults to mention-gating in group contexts.
That means this setup is normal:
If you want the bot to reply without pings in a specific channel, set:
{
channels: {
irc: {
groups: {
'#ops-bot': {
requireMention: false,
allowFrom: ['*'],
},
},
},
},
}
Do that on purpose, not by accident.
An IRC rollout is only trustworthy when you verify all three layers.
Confirm the bot can connect, authenticate as needed, and stay present on the intended network.
If login fails, upstream points first to nick availability and server password checks. If TLS fails, inspect host, port, and certificate setup.
Send a direct message from a sender who is not yet approved.
With the default policy, that should prove the pairing path rather than auto-trusting the sender.
Use a single known channel in groups and test an explicit mention from an allowed sender.
This should prove:
This is the most useful IRC-specific check:
Silence here is healthy. It proves the gates are doing what you asked.
The official docs include a direct warning: if you set allowFrom: ['*'] in a public channel, anyone in that channel can prompt the bot.
That does not automatically make the setup wrong, but it changes the threat model immediately.
Upstream recommends pairing that kind of openness with stricter tool policy, including per-channel or per-sender tool restrictions.
The operator lesson is simple:
Two documented conveniences are worth remembering:
IRC_HOST, IRC_PORT, IRC_TLS, IRC_NICK, and IRC_NICKSERV_PASSWORD.That is useful for smaller deployments, but long-term operations are still easier when your channel policy remains visible in config rather than scattered across shell state.
The official troubleshooting notes describe a predictable set of failures.
This is often not a network issue. The likely causes are:
groups does not include the channel,The docs specifically call out missing-mention as a clue here.
That usually means the operator used allowFrom and assumed it also covered channel senders.
It does not. Channel sender policy lives in groupAllowFrom or per-channel allowFrom entries under groups.
If you switch to groupPolicy: 'open' and combine it with permissive sender rules, IRC can become the noisiest lane in your deployment.
That is why upstream defaults to allowlist-first operation.
The next two topics usually help once IRC is live:
The first helps with DM trust decisions. The second matters the moment you want channel behavior to feel deliberate instead of accidental.
Verification & references
References