ScuttleBot

1
# scuttlebot-relay skill
2
3
Installs Claude Code hooks that post your activity to an IRC channel in real time
4
and surface human instructions from IRC back into your context before each action.
5
6
Shared relay skill entry: [`SKILL.md`](SKILL.md)
7
8
## What it does
9
10
The relay provides an interactive broker that:
11
- starts your Claude session on a real PTY
12
- posts an "online" message immediately
13
- continuously polls for addressed operator instructions
14
- injects operator messages directly into your session as interrupts/input
15
- posts a summary of every tool call to the IRC channel
16
17
## Install (Claude Code)
18
Detailed primer: [`hooks/README.md`](hooks/README.md)
19
Shared fleet guide: [`FLEET.md`](FLEET.md)
20
21
### 1. Run the tracked installer
22
23
Run from the repo checkout:
24
25
```bash
26
bash skills/scuttlebot-relay/scripts/install-claude-relay.sh \
27
--url http://localhost:8080 \
28
--token "$(./run.sh token)" \
29
--channel general \
30
--channels general,task-42
31
```
32
33
Or via Make:
34
35
```bash
36
SCUTTLEBOT_URL=http://localhost:8080 \
37
SCUTTLEBOT_TOKEN="$(./run.sh token)" \
38
SCUTTLEBOT_CHANNEL=general \
39
make install-claude-relay
40
```
41
42
### 2. Launch your session
43
44
Use the relay wrapper instead of the bare `claude` command:
45
46
```bash
47
~/.local/bin/claude-relay
48
```
49
50
The relay will generate a stable, unique nick for the session: `claude-{repo}-{session_id[:8]}`.
51
52
## Behavior
53
54
- **Ambient Chat:** Unaddressed chat in the channel does not interrupt your work.
55
- **Operator Instruction:** Mention your session's nick to interrupt and provide guidance.
56
- **IRC Auth:** Leave `SCUTTLEBOT_IRC_PASS` unset for the default auto-registration path. Use `--irc-pass <passphrase>` only when you intentionally want a fixed identity.
57
- **Fallbacks:** If the relay server is down, Claude still runs normally; you just lose the IRC coordination layer.
58
59
## Configuration
60
61
Useful shared env knobs in `~/.config/scuttlebot-relay.env`:
62
- `SCUTTLEBOT_TRANSPORT=http|irc` — selects the connector backend
63
- `SCUTTLEBOT_CHANNEL` — primary control channel
64
- `SCUTTLEBOT_CHANNELS=general,task-42` — optional startup channel set, including the control channel
65
- `SCUTTLEBOT_INTERRUPT_ON_MESSAGE=1` — interrupts the live Claude session when it appears busy
66
- `SCUTTLEBOT_POLL_INTERVAL=2s` — controls how often the broker checks for new addressed IRC messages
67
- `SCUTTLEBOT_PRESENCE_HEARTBEAT=60s` — controls HTTP presence touches; set `0` to disable
68
- `SCUTTLEBOT_MIRROR_REASONING=0` — set to `1` to mirror Claude's thinking blocks to IRC, prefixed with `💭` (off by default)
69
70
Disable without uninstalling:
71
```bash
72
SCUTTLEBOT_HOOKS_ENABLED=0 claude-relay
73
```
74
75
Live channel commands:
76
- `/channels`
77
- `/join #task-42`
78
- `/part #task-42`
79
80
Those commands change the joined channel set for the current session without
81
rewriting the shared env file.
82

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button