Slack
Deskhand connects to Slack over Socket Mode, so it needs no public URL. It works behind a firewall or on a laptop.
1. Create the app
- Go to api.slack.com/apps and choose Create New App, then From a manifest.
- Pick your workspace and paste the contents of
deploy/slack-manifest.ymlfrom your project.
The manifest turns on Socket Mode and interactivity, subscribes to the app_mention and message.im events, and requests these bot scopes:
app_mentions:read chat:write channels:history groups:history im:history 2. Get the tokens
- Basic Information → App-Level Tokens → Generate Token and Scopes. Add the
connections:writescope. This is yourxapp-token. - Install App → Install to Workspace. Copy the Bot User OAuth Token. This is your
xoxb-token.
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-... 3. Enable it
chat:
slack: { enabled: true } docker compose -f deploy/docker-compose.yml up -d --build Invite the app to a channel before mentioning it there:
/invite @Deskhand How it behaves
- It always answers in a thread under the message.
- In channels it answers messages that mention it. When mentioned inside a thread, it first reads the replies it hasn’t seen yet.
- In a DM no mention is needed. Each top-level DM starts a conversation, and every reply in its thread continues it.
- It first posts “Looking into it…”, then edits that message into the answer.
- Approvals show as Approve and Deny buttons in the thread. If someone else clicks, they get a note only they can see.
- Messages sent while Deskhand is stopped are not answered. Ask again once it is back.