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

# Discord

> Discord → DuckBrain ingest (Available)

**Status:** Available

Discord guild channel history, fetched by **[discrawl](https://github.com/openclaw/discrawl)**, a local-first crawler that archives channels via the Discord API into a local SQLite database at `~/.discrawl/discrawl.db` (guilds, channels, members, messages). DuckBrain attaches that database read-only and maps each message to bronze — same shape as Slack.

```bash theme={null}
brew install openclaw/tap/discrawl         # or pick Discord in `duckbrain init`
discrawl init
discrawl sync
duckbrain sync discord
duckbrain search "deploy plan" --source discord --in "#general"
```

## What gets ingested

* **One bronze row per message.** Empty and deleted messages carry no text and are dropped.
* **Idempotent.** `discrawl sync` refreshes the archive; DuckBrain re-ingests and dedups on a stable per-message id.
* **Streaming poll lane.** Discord data is remote, so the crawler runs on an interval (\~15 min) — messages are searchable within minutes.

## Facet mapping

| Facet            | Value                            |
| ---------------- | -------------------------------- |
| `--source`       | `discord` (alias `discrawl`)     |
| `--in`           | the channel — `#channel`         |
| title            | `#channel authorname`            |
| observer         | `discord:<author>` — who said it |
| platform\_source | `discord`                        |

<Note>
  Rows are `classification: confidential` and never leave the machine.
</Note>
