Install
openclaw skills install discrawl-searchSearch Discord message history via discrawl SQLite database. Use when the user asks about past conversations, previous discussions, historical messages, or anything that requires searching through Discord guild message archives. Triggers on queries like "之前说过...", "以前讨论过...", "找一下之前的...", "search discord history", "past messages about...", or any question that implies looking up historical guild conversations. Supports keyword search, channel-specific search, user-specific search, and SQL queries.
openclaw skills install discrawl-searchSearch Discord guild message history stored in local discrawl SQLite database.
~/.discrawl/discrawl.dbdiscrawl sync (bot API) or discrawl sync --source wiretap (Discord Desktop cache)Search message content with ranking:
discrawl search "query"
Options:
--limit N — max results (default: 20)--channel ID — filter by channel--author ID — filter by author--before "2026-04-01" — date filter--json — JSON outputdiscrawl messages --channel <channel_id> --limit 10
discrawl sql "SELECT ..."
SELECT
m.content,
m.created_at,
COALESCE(u.username, m.author_id) as author,
COALESCE(c.name, m.channel_id) as channel
FROM messages m
LEFT JOIN members u ON m.author_id = u.user_id
LEFT JOIN channels c ON m.channel_id = c.id
WHERE m.content LIKE '%keyword%'
ORDER BY m.created_at DESC
LIMIT 10;
SELECT content, created_at
FROM messages
WHERE channel_id = '<channel_id>'
AND content LIKE '%keyword%'
ORDER BY created_at DESC
LIMIT 20;
SELECT m.content, m.created_at, c.name
FROM messages m
JOIN channels c ON m.channel_id = c.id
WHERE m.author_id = '<user_id>'
ORDER BY m.created_at DESC
LIMIT 20;
SELECT
m.content,
m.created_at,
fts.rank
FROM message_fts fts
JOIN messages m ON fts.message_id = m.id
WHERE message_fts MATCH 'keyword'
ORDER BY rank
LIMIT 20;
SELECT content, created_at
FROM messages
WHERE channel_id = '<channel_id>'
ORDER BY created_at DESC
LIMIT 5;
| Table | Purpose |
|---|---|
messages | All messages (content, created_at, author_id, channel_id) |
channels | Channel metadata (name, topic, kind, guild_id) |
members | User info (username, global_name, nick) |
message_fts | FTS5 virtual table for full-text search |
mention_events | @mentions tracking |
message_attachments | File attachments with text extraction |
members table may be sparse (2 rows in current db) — use COALESCE(u.username, m.author_id) for fallbacknormalized_content column has cleaned text (lowercase, normalized whitespace)raw_json has full Discord API payload for advanced queriesLEFT JOIN on members/channels to avoid missing rows when joins fail