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.
126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!