Connect
channels:join. The last scope allows the
app to join public channels before reading them; this membership mutation is
separate from content writes. Locality does not request chat:write, admin
scopes, search scopes, or user email scope.
Mount
auto_join_public_channels to false to prevent membership changes.
Unjoined public channels will be omitted; already joined public channels remain
readable. This option does not change the connector’s read-only content policy.
Projection
- public channels live under
channels/; - private channels live under
private-channels/; - direct messages live under
dms/; - multi-person direct messages live under
group-dms/; - conversation directory names include the Slack conversation id suffix for stable disambiguation;
- workspace user metadata lives in
users.md; - each conversation directory contains
recent.md.
Current limits
- Slack V1 is read-only.
- Locality rejects edits, creates, renames, moves, deletes, push writes, undo writes, and autosave writes under Slack mounts.
- History sync defaults to 15 messages per request and a 1 request/minute gate to satisfy Slack’s strictest documented policy for new non-Marketplace commercial apps.
- Internal customer-built and Marketplace apps may have different provider limits, but Locality keeps this default conservative.
- V1 does not post messages, expand thread bodies, subscribe to Slack events, or store arbitrary Slack search results.