Connect
From the console → Integrations, click Connect on Slack. Or, from any boxd CLI:What’s authorized
The one consent screen requests two sets of scopes:| Token | Scopes | For |
|---|---|---|
Bot (xoxb-) | channels:read, channels:history, groups:read, im:read, mpim:read, chat:write, users:read, team:read | Reading channels and posting as the app |
User (xoxp-) | search:read, channels:history, chat:write, users:read | Acting as you — notably search:read, which only a user token can do |
Use Slack from a machine
Three environment variables are exported into every login shell (and the coding agents’ environment):| Variable | Value |
|---|---|
SLACK_BOT_TOKEN | Bot token (xoxb-) — act as the app |
SLACK_USER_TOKEN | User token (xoxp-) — act as you |
SLACK_TEAM_ID | The connected workspace’s id |
boxd integrations inside the machine to confirm it’s wired in and see this same hint.
Slack MCP server
Slack also publishes a Model Context Protocol server (slack-server, at https://mcp.slack.com/mcp) that a coding agent can call directly. Its bearer is your user token (that’s what powers search), so the MCP needs the user grant to work. It’s opt-in per agent: