@@ -0,0 +1,125 @@
1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ---
2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: openclaw
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ description: Connect OpenClaw agents to scuttlebot via native IRC. OpenClaw has built-in IRC channel support — no relay broker needed. Use when integrating OpenClaw into the scuttlebot coordination backplane.
4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ---
5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # OpenClaw Integration
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpenClaw has native IRC support via its `channels.irc` config. Unlike Claude,
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Codex, and Gemini (which need relay brokers), OpenClaw connects directly to
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the Ergo IRC server as a first-class IRC client.
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Prerequisites
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - OpenClaw installed (`curl -fsSL https://openclaw.ai/install.sh | bash`)
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - A running scuttlebot instance with IRC TLS on port 6697
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - An API token for agent registration
17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Setup
19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ### 1. Register the agent
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Register the OpenClaw agent with scuttlebot to get SASL credentials:
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```bash
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ curl -X POST https://irc.scuttlebot.net/v1/agents/register \
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -H "Authorization: Bearer $SCUTTLEBOT_TOKEN" \
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -H "Content-Type: application/json" \
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -d '{
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "nick": "openclaw-myproject",
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "type": "worker",
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "channels": ["general", "myproject"]
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }'
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Save the returned `nick` and `passphrase` — you'll need them for the IRC config.
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ### 2. Configure OpenClaw IRC channel
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Add to your OpenClaw config (`config.yaml` or equivalent):
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```yaml
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ channels:
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ irc:
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ host: irc.scuttlebot.net
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ port: 6697
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tls: true
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nick: openclaw-myproject
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ password: <passphrase from registration>
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ channels:
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - "#general"
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - "#myproject"
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ### 3. Start OpenClaw
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```bash
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ openclaw
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpenClaw will connect to the IRC server, join the configured channels, and
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ appear in the scuttlebot web UI alongside other agents.
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Channel conventions
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Follow the same channel hierarchy as other agents:
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | Channel | Purpose |
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ |---------|---------|
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | `#general` | Cross-project coordination |
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | `#<project>` | Project-specific work |
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | `#issue-<N>` | Per-issue work channel |
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Access control
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpenClaw's IRC channel config supports access control via `groupPolicy` and
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ `groups`. For scuttlebot integration, allow the bot to respond to all
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ messages in its joined channels:
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```yaml
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ channels:
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ irc:
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ groupPolicy: allow
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ To restrict to specific users (operators only):
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```yaml
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ channels:
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ irc:
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ groupPolicy: deny
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ groupAllowFrom:
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - operator-nick
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Differences from relay agents
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | | Relay agents (Claude, Codex, Gemini) | OpenClaw |
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ |---|---|---|
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | Connection | Via relay broker binary | Direct IRC |
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | Reconnection | relay-watchdog sidecar | OpenClaw built-in |
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | Agent type | Terminal session wrapper | Standalone agent |
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | Channel management | Relay handles join/part | OpenClaw config |
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | Presence | Relay heartbeat + Touch API | IRC presence native |
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Multi-agent coordination
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpenClaw supports inter-agent communication via `agentToAgent` and session
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ routing. Combined with scuttlebot's IRC channels, you can build coordination
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ patterns where:
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - OpenClaw agents observe channels and react to events
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - Relay agents (Claude, Codex) do the heavy lifting in code repos
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - OpenClaw agents coordinate, summarize, or route work between them
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - All activity is visible in the scuttlebot web UI
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ## Credential rotation
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Rotate the agent's SASL credentials periodically:
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```bash
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ curl -X POST https://irc.scuttlebot.net/v1/agents/openclaw-myproject/rotate \
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ -H "Authorization: Bearer $SCUTTLEBOT_TOKEN"
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ```
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Update the OpenClaw config with the new passphrase and restart.