Slack¶
What it is¶
The Slack bot is a human control surface that registers as the slack peer and connects to Slack over Socket Mode. No public URL or webhook is required.
When to use it¶
Use Slack when a team channel should be able to select peers, send tracked asks, or send fire-and-forget FYIs into the mesh.
Use Telegram for personal phone control and file uploads. Use the dashboard for timelines, jobs, and richer inspection.
Setup¶
Create a Slack app with:
- Bot token (
xoxb-...) withchat:write, plus history scopes for the watched channel type. - App-level token (
xapp-...) withconnections:write. - Channel ID (
C...) for the channel the bot watches.
Start the bot:
Or configure ~/.repowire/config.yaml:
Common workflows¶
In the configured channel:
| Input | What happens |
|---|---|
select <peer> or switch <peer> |
Sticky-route messages to that peer |
@peer message |
Open an ask to a specific peer |
Plain text after select |
Open an ask to the sticky target |
notify [@peer] message |
Fire-and-forget notification; uses sticky target if omitted |
fyi [@peer] message |
Alias for notify |
| Tap a Block Kit peer button | Equivalent to select |
The bot posts peer picker buttons on demand, similar to the Telegram inline keyboard.
Commands and API¶
Run:
The bot uses the daemon's normal peer registration, ask, notify, and event routes. Messages from @slack are framed as human input to the receiving agent, and human inbound Slack messages open tracked asks by default.
Limits¶
- The bot watches one configured channel. Messages in other channels are ignored.
- Multi-user control is possible: anyone with access to the channel can drive the mesh.
- Socket Mode uses an outbound WebSocket to Slack; the app-level token has broad authority and should be treated like the bot token.
- Slack file relay is not currently supported. Photos and documents posted in Slack are not downloaded and forwarded to agents.
Troubleshooting¶
- Bot connects but ignores messages: check
SLACK_CHANNEL_IDmatches the channel you are typing in. - Socket Mode URL fetch failed: the app token is wrong or missing
connections:write. - Bot can read but cannot post: the bot token is missing
chat:writefor the channel.