Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Use IRC when you want OpenClaw in classic channels (
#roomchannels.irc~/.openclaw/openclaw.jsonjson5{ channels: { irc: { enabled: true, host: "irc.example.com", port: 6697, tls: true, nick: "openclaw-bot", channels: ["#openclaw"], }, }, }
Prefer a private IRC server for bot coordination. If you intentionally use a public IRC network, common choices include Libera.Chat, OFTC, and Snoonet. Avoid predictable public channels for bot or swarm backchannel traffic.
bashopenclaw gateway run
channels.irc.dmPolicy"pairing"channels.irc.groupPolicy"allowlist"groupPolicy="allowlist"channels.irc.groupschannels.irc.tls=trueThere are two separate “gates” for IRC channels:
groupPolicygroupsgroupAllowFromgroups["#channel"].allowFromConfig keys:
channels.irc.allowFromchannels.irc.groupAllowFromchannels.irc.groups["#channel"]channels.irc.groupPolicy="open"Allowlist entries should use stable sender identities (
nick!user@hostchannels.irc.dangerouslyAllowNameMatching: trueallowFromIf 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.groupAllowFromchannels.irc.groups["#channel"].allowFromExample (allow anyone in
#tuirc-devjson5{ channels: { irc: { groupPolicy: "allowlist", groups: { "#tuirc-dev": { allowFrom: ["*"] }, }, }, }, }
Even if a channel is allowed (via
groupPolicygroupsThat means you may see logs like
drop channel … (missing-mention)To make the bot reply in an IRC channel without needing a mention, disable mention gating for that channel:
json5{ 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:
json5{ channels: { irc: { groupPolicy: "open", groups: { "*": { requireMention: false, allowFrom: ["*"] }, }, }, }, }
If you allow
allowFrom: ["*"]json5{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], tools: { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, }, }, }, }, }
Use
toolsBySender"*"json5{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], toolsBySender: { "*": { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, "id:eigen": { deny: ["gateway", "nodes", "cron"], }, }, }, }, }, }, }
Notes:
toolsBySenderid:id:eigenid:eigen!~eigen@174.127.248.171id:"*"For more on group access vs mention-gating (and how they interact), see: /channels/groups.
To identify with NickServ after connect:
json5{ channels: { irc: { nickserv: { enabled: true, service: "NickServ", password: "your-nickserv-password", }, }, }, }
Optional one-time registration on connect:
json5{ channels: { irc: { nickserv: { register: true, registerEmail: "bot@example.com", }, }, }, }
Disable
registerDefault account supports:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELSIRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAILIRC_HOST.env.envchannels.irc.groupsmissing-mentionrequireMention:false© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine