Slack
Slack is the highest-signal source for collaboration context — what you discussed, with whom, and what was decided. It’s also the most privacy-sensitive, so DevRecall is conservative about what it stores.
Connect
Section titled “Connect”devrecall auth slackThis opens a browser for OAuth. Slack does not support localhost
redirect URIs, so the flow goes through relay.devrecall.dev — the
relay forwards the auth code to your local agent and then deletes its
copy. The relay never sees the token.
Tokens are stored in ~/.devrecall/tokens/slack.json (0600).
Workspace admin approval
Section titled “Workspace admin approval”Many workspaces require admin approval for OAuth apps. If your workspace has “Approved Apps” enabled, your admin will see the request and need to approve DevRecall before you can finish connecting.
The DevRecall OAuth app requests user-token scopes — it acts as you, not as a bot in the workspace.
What gets collected
Section titled “What gets collected”| Activity | What |
|---|---|
| Messages you sent | Channel, timestamp, text, thread parent |
| Threads you participated in | Full thread context |
| Reactions you gave | Emoji + target message (lightweight signal) |
| Channel activity | Which channels you were active in |
Not collected by default: other people’s messages outside threads you participated in, DMs (opt-in only), file contents.
Storage modes
Section titled “Storage modes”You control how much of your Slack activity is stored, per channel or globally:
| Mode | What’s stored | Use when |
|---|---|---|
full (default) | Full message text | Want accurate standups |
summary | LLM-generated thread summaries only | Want privacy + utility |
metadata | Channel, time, participants — no text | Maximum privacy |
DMs default to metadata.
{ "slack": { "default_mode": "full", "channel_overrides": { "private-leadership": "metadata", "general": "summary" } }}Required scopes
Section titled “Required scopes”| Scope | Purpose |
|---|---|
channels:history | Read public-channel messages |
channels:read | List public channels |
groups:history | Read private channels you’re a member of |
groups:read | List private channels |
users:read | Get profiles for identity resolution |
users:read.email | Get emails for cross-source identity merge |
reactions:read | Track reactions you gave |
search:read | Efficient “find my messages” queries |
im:history (DMs) is not requested by default.
Rate limits
Section titled “Rate limits”Slack uses tiered rate limits (20–100 req/min depending on endpoint).
DevRecall uses search.messages to find your own messages in one call
across all channels — a daily sync is typically 10–30 requests.
Multiple workspaces
Section titled “Multiple workspaces”Run devrecall auth slack again for each workspace. Each token is
stored separately.