| name | fleet-irc |
| description | Use when communicating with fleet agents, checking agent status, or sending commands via IRC. The fleet runs TLS IRC on 10.0.3.203; agents listen in |
Fleet IRC — Agent Communication via irssi
Access
IRC server: 10.0.3.203 (irclaw macvlan container on QNAS 10.0.2.35), TLS
Nick to use: ryan
Primary channel: #agents
ssh ubuntu@10.0.3.203 'irssi --connect=10.0.3.203 --nick=ryan --tls'
ssh ubuntu@10.0.3.203 'irssi --connect=10.0.3.203 --nick=ryan --tls \
--eval "/msg #agents hello" --eval "/quit"' 2>/dev/null
echo -e "NICK ryan\r\nUSER ryan 0 * :ryan\r\nJOIN #agents\r\nPRIVMSG #agents :message\r\nQUIT\r\n" \
| openssl s_client -connect 10.0.3.203:6697 -quiet 2>/dev/null
Non-Interactive Messaging (preferred for automation)
ssh ubuntu@10.0.3.203 "echo 'PRIVMSG #agents :your message here' | \
openssl s_client -connect 127.0.0.1:6697 -quiet 2>/dev/null" &
ssh ubuntu@10.0.3.203 "echo 'PRIVMSG ztudio :run status' | \
openssl s_client -connect 127.0.0.1:6697 -quiet 2>/dev/null" &
Ansible Alternative
The IRC host is reachable via ansible group or direct:
irc-host ansible_host=10.0.3.203 ansible_user=ubuntu
ansible -i inventory irc-host -m shell -a 'irssi --connect=...'
Agent Names in #agents
Agents announce themselves on join. Common names:
- irclaw bots: usually match hostname (e.g.
ubrpi407-zclaw)
- Coordinator agents:
i9-agent, i7-agent
Use Cases
| Situation | Use IRC when |
|---|
| Check agent alive | ping via DM faster than SSH |
| Broadcast to fleet | single #agents message vs ansible loop |
| SSH unreachable | IRC runs independently of gastown/ansible |
| Real-time coordination | watch #agents during deploys |
| Out-of-band commands | agent can exec commands and report back |
Notes
- Server is on macvlan IP 10.0.3.203 — NOT on i9 (10.0.2.230)
- TLS port: 6697 (standard IRC TLS)
- Plain port: 6667 (if TLS fails, fallback)
- irssi is installed on the container host itself