DocsChannelsSlack

Slack

Run Ryvos as a Slack app using Socket Mode for real-time WebSocket communication. No public URL required.

Setup

1. Create a Slack App

  1. Go to api.slack.com/apps
  2. Create a new app from scratch
  3. Under Socket Mode, enable it and generate an app-level token (starts with xapp-)
  4. Under OAuth & Permissions, add bot scopes: chat:write, im:history, im:read, im:write
  5. Install the app to your workspace
  6. Copy the Bot User OAuth Token (starts with xoxb-)

2. Get User IDs

User IDs in Slack look like U01234ABC. Find yours in your Slack profile.

3. Configure Ryvos

[channels.slack]
bot_token = "${SLACK_BOT_TOKEN}"      # xoxb-...
app_token = "${SLACK_APP_TOKEN}"      # xapp-...
dm_policy = "allowlist"
allowed_users = ["U01234ABC"]

4. Start

export SLACK_BOT_TOKEN="xoxb-..."
export SLACK_APP_TOKEN="xapp-..."
ryvos daemon

Socket Mode

Ryvos uses Slack's Socket Mode, which connects via WebSocket. This means:

  • No public URL or ngrok needed
  • Works behind firewalls
  • Real-time message delivery

Blocks UI

Approval requests use Slack's Block Kit for rich interactive messages:

  • Button actions for approve/deny
  • Threaded conversations per session
  • Code blocks with formatting

DM Policy

PolicyBehavior
allowlistOnly users in allowed_users can interact
openAny workspace member can DM the bot
disabledSlack adapter doesn't start