Setup
1. Create a Slack App
- Go to api.slack.com/apps and create a new app
- Enable Socket Mode under Settings
- Generate an App-Level Token with
connections:writescope — this is yourapp_token
2. Configure Bot Token Scopes
Under OAuth & Permissions, add these bot token scopes:app_mentions:readchannels:historychannels:readchat:writegroups:historygroups:readim:historyim:readim:writeusers:read
3. Subscribe to Events
Under Event Subscriptions, subscribe to:app_mentionmessage.channelsmessage.groupsmessage.im
4. Install to Workspace
Install the app to your workspace and copy the Bot User OAuth Token — this is yourbot_token.
5. Configure Operator
Add your tokens to~/.env:
operator.yaml:
Conversation Routing
Slack conversations use canonical IDs:root_ts is thread_ts for threaded replies or ts for top-level posts. The runtime stores platform_message_id → conversation_id mappings so replies to proactive job messages continue in the correct history.
Commands
Messages starting with! bypass the LLM and are handled directly:
| Command | Description |
|---|---|
!help | List all available commands |
!stop | Cancel the active request in the current conversation |
!restart | Directs to CLI (disabled in chat) |
!config | Show resolved configuration as JSON |
!agents | List configured agents |
!jobs [name] | List all jobs, or show details for a specific job |
!skills | List discovered skills with env status |
!memories | List pinned memories (agent and global scopes) |

