> ## Documentation Index
> Fetch the complete documentation index at: https://docs.locality.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack connector

> Mount Slack conversations as read-only Markdown.

The Slack connector mounts recent Slack conversation history as read-only
Markdown.

## Connect

```bash theme={null}
loc connect slack
```

Locality requests bot scopes for conversation metadata and history, users and
team metadata, file metadata, and `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

```bash theme={null}
loc mount slack ~/Locality/slack-main
loc pull ~/Locality/slack-main
```

Default settings:

```json theme={null}
{"slack":{"history_limit":15,"types":["public_channel","private_channel","im","mpim"],"auto_join_public_channels":true}}
```

Set `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

```text theme={null}
slack-main/
  channels/
    product-C123/
      recent.md
  private-channels/
    leadership-G123/
      recent.md
  dms/
    jane-doe-D123/
      recent.md
  group-dms/
    design-triage-G456/
      recent.md
  users.md
```

* 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.
