Slack Integration
The Slack integration lets your VM post messages to a Slack channel with a plain HTTP request — no Slack tokens on the VM, no Slack SDK required. It's handy for build notifications, long-running job completions, or anything an agent wants to tell you about.
If you want a bot that can respond to Slack — read messages, react to mentions, call the full Slack Web API — see the Slack Bot Integration instead.
Setup
Click the Slack tile on the Integrations page, or run:
exe.dev ▶ integrations setup slack
Either way, you'll be sent to Slack to authorize the exe.dev app. Slack shows a channel picker: choose the workspace and channel the integration should post to, then click Allow. That's the whole dance — exe.dev stores the resulting webhook server-side, and the integration is created for you.
Each integration posts to exactly one channel. To post to a second channel, run setup again and pick a different channel.
Sending messages
Attach the integration to a VM, then POST JSON to the integration hostname:
exe.dev ▶ integrations attach slack-hook vm:my-vm
Attached slack-hook to vm:my-vm
exe.dev ▶ ssh my-vm curl --json '{"text":"build finished ✅"}' https://slack-hook.int.exe.xyz/
ok
The request body is Slack's incoming webhook payload, so anything Slack supports there works — including Block Kit:
curl --json '{"blocks":[{"type":"section","text":{"type":"mrkdwn","text":"*deploy done* :rocket:"}}]}' \
https://slack-hook.int.exe.xyz/
Notes
- The webhook URL is a secret, and it never touches your VM. exe.dev holds it server-side and injects it when proxying your request.
- Messages are rate limited to 5 per minute per user.
- If the webhook is revoked on the Slack side (app removed from the
workspace), requests return 404 — re-run
integrations setup slack. - If a workspace requires admin approval for apps, clicking Allow files an approval request; the integration is created once an admin approves.
Manual webhook
Already have a Slack incoming webhook URL from your own app? Skip OAuth and add it directly:
exe.dev ▶ integrations add slack --name my-slack --webhook-url https://hooks.slack.com/services/T000/B000/XXXX