Skip to content

Slack permissions

When you install engineer9, Slack shows a consent screen listing everything the app can do. Here’s what each permission is actually for. The short version: engineer9 asks for what it needs to read the channels you choose, reply, and manage its own membership — nothing that lets it act outside the channels you’ve added.

Slack grants permissions at install time. When engineer9 adds a capability that needs a new permission, your workspace picks it up on the next reinstall — which is why a reinstall is occasionally the fix for a missing feature.

PermissionWhy
View messages in channels it’s added to (channels:history, groups:history)Reading context in your chosen channels — the core of how it learns. Channel access is default-deny; these only apply to channels you add.
Send messages (chat:write)Replying when you mention it
See mentions (app_mentions:read)Knowing when it’s been asked something
Join public channels (channels:join)Joining the public channels you add — no manual invite needed
List channels and members (channels:read, groups:read, users:read)Powering the channel picker and the team roster
Member emails (users:read.email)Keying the roster by email so entries survive display-name changes
Read DMs it’s part of (im:history) and start DMs (im:write)Direct conversations with engineer9
View shared files (files:read)Reading screenshots and files you share in added channels
Add reactions (reactions:write)Acknowledging messages (👀 while working, ✅ when done)

What it can do on your behalf (installer permissions)

Section titled “What it can do on your behalf (installer permissions)”

These act as you, only during setup flows:

PermissionWhy
List your channels (channels:read, groups:read)The channel picker shows private channels you belong to — the bot can’t see them until invited
Invite to private channels (groups:write)When you pick a private channel, engineer9 is invited using your access — Slack doesn’t let bots join private channels on their own
Send messages (chat:write)Posting scheduled messages you set up
  • Read any channel you haven’t added — see Channels & access
  • Join a private channel by itself — it must be invited (automatically via your access, or /invite @engineer9)
  • Act outside Slack without your approval