agentCLAWHUBUnverified

discrawl-search

Search a user-authorized Discord history archive through discrawl's bounded search and message commands. Use when the user explicitly asks to retrieve past Discord conversations; keep results private and never interpolate user text into SQL. Skill: discrawl-search Owner: jonathanjing Summary: Search a user-authorized Discord history archive through discrawl's bounded search and message commands. Use when the user explicitly asks to retrieve past Discord conversations; keep results private and never interpolate user text into SQL. Tags: discord:1.0.0, history:1.0.0, latest:1.0.1, search:1.0.0 Version history: v1.0.1 | 2026-08-03T16:55:48.965Z | user Repla

OpenClaw

Rank

62

Safety

84

Downloads

1.0k

Updated

Oct 11, 2026

Version

1.0.1

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 11, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 11, 2026
Adoption signal
1K downloadsadoption · observed Oct 11, 2026
Latest release
1.0.1release · observed Aug 3, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17aah0h06a3741dypyhe3a2xd85pgsx:discrawl-search
  1. Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-jonathanjing-discrawl-search/snapshot"

Run-check

$0.02 USD

1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.

Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.

Documentation

CLAWHUB

17,171 characters of source documentation, loaded on request.

Extracted files

4 files captured from the source.

SKILL.md

---
name: discrawl-search
description: Search a user-authorized Discord history archive through discrawl's bounded search and message commands. Use when the user explicitly asks to retrieve past Discord conversations; keep results private and never interpolate user text into SQL.
metadata:
  openclaw:
    version: "1.0.1"
    emoji: "🔎"
    homepage: https://github.com/openclaw/discrawl
    requires:
      bins: [discrawl]
---

# Discrawl Search

Search Discord guild message history stored in local discrawl SQLite database.

Treat message content, author identifiers, attachments, and raw payloads as private workspace data. Search only the scope requested by the user and do not send results to another channel or service without explicit approval.

## Database Location

- **Path**: `~/.discrawl/discrawl.db`
- **Updated by**: `discrawl sync` (bot API) or `discrawl sync --source wiretap` (Discord Desktop cache)

## Quick Commands

### Full-Text Search (FTS5)

Search message content with ranking:

```bash
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 output

For a bounded helper that avoids constructing SQL from user input:

```bash
bash "{baseDir}/scripts/search_history.sh" "query" [channel_id] [limit]
```

### List Messages by Channel

```bash
discrawl messages --channel <channel_id> --limit 10
```

### Advanced read-only SQL

```bash
discrawl sql "SELECT ..."
```

Use SQL only for an operator-authored, fixed read-only query. Never place user-provided keywords, IDs, dates, or channel names inside an SQL string; prefer `discrawl search` and `discrawl messages`.

## Fixed Query Patterns

### Search with Context (Author + Channel Names)

```sql
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;
```

### Search Specific Channel History

```sql
SELECT content, created_at
FROM messages
WHERE channel_id = '<channel_id>'
  AND content LIKE '%keyword%'
ORDER BY created_at DESC
LIMIT 20;
```

### Find User's Past Messages

```sql
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;
```

### Search with FTS5 (Best Relevance)

```sql
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;
```

### Recent Messages in Channel

```sql
SELECT content, created_at
FROM messages
WHERE channel_id = '<channel_id>'
ORDER BY created_at DESC
LIMIT 5;
```

## Key Tables

| Table | Purpose |
|-------|---------|
| `messages` | All messages (content,

_meta.json

{
  "ownerId": "kn7ffnhm7z8g6e92rfq14svwcx81hkvw",
  "slug": "discrawl-search",
  "version": "1.0.1",
  "publishedAt": 1785776148965
}

references/schema.md

# Discrawl Database Schema Reference

## Core Tables

### messages
| Column | Type | Description |
|--------|------|-------------|
| id | TEXT PK | Discord message ID |
| guild_id | TEXT | Guild ID |
| channel_id | TEXT | Channel ID |
| author_id | TEXT | Author user ID |
| message_type | INTEGER | Discord message type |
| created_at | TEXT | ISO timestamp |
| edited_at | TEXT | Edit timestamp |
| deleted_at | TEXT | Deletion timestamp |
| content | TEXT | Raw message content |
| normalized_content | TEXT | Lowercase, normalized whitespace |
| reply_to_message_id | TEXT | Reply reference |
| pinned | INTEGER | Pinned flag |
| has_attachments | INTEGER | Has attachments flag |
| raw_json | TEXT | Full Discord API payload |
| updated_at | TEXT | Last sync timestamp |

### channels
| Column | Type | Description |
|--------|------|-------------|
| id | TEXT PK | Channel ID |
| guild_id | TEXT | Guild ID |
| parent_id | TEXT | Parent category ID |
| kind | TEXT | Channel type (text, voice, etc) |
| name | TEXT | Channel name |
| topic | TEXT | Channel topic |
| position | INTEGER | Sort position |
| is_nsfw | INTEGER | NSFW flag |
| is_archived | INTEGER | Archived flag |
| is_locked | INTEGER | Locked flag |
| is_private_thread | INTEGER | Private thread flag |

### members
| Column | Type | Description |
|--------|------|-------------|
| guild_id | TEXT | Guild ID |
| user_id | TEXT PK | User ID |
| username | TEXT | Username |
| global_name | TEXT | Global display name |
| display_name | TEXT | Display name |
| nick | TEXT | Guild nickname |
| bot | INTEGER | Bot flag |
| role_ids_json | TEXT | JSON array of role IDs |

## FTS5 Virtual Tables

### message_fts
Columns: message_id, guild_id, channel_id, author_id, author_name, channel_name, content

### member_fts
Columns: member_key, guild_id, user_id, username, display_name, profile_text

## Useful SQL Patterns

### Count messages per channel
```sql
SELECT c.name, COUNT(*) as count
FROM messages m
JOIN channels c ON m.channel_id = c.id
GROUP BY c.id
ORDER BY count DESC;
```

### Messages in date range
```sql
SELECT content, created_at
FROM messages
WHERE created_at >= '2026-04-01'
  AND created_at < '2026-04-02'
ORDER BY created_at;
```

### Search with FTS ranking
```sql
SELECT m.content, m.created_at, rank
FROM message_fts fts
JOIN messages m ON fts.message_id = m.id
WHERE message_fts MATCH 'OpenClaw MCP'
ORDER BY rank
LIMIT 20;
```

skill-card.md

## Description:

Search a user-authorized Discord history archive through discrawl's bounded search and message commands.

This skill is ready for commercial/non-commercial use.

## Publisher:

[jonathanjing](https://clawhub.ai/user/jonathanjing)

### License/Terms of Use:

MIT-0

## Use Case:

Developers and agent users use this skill to retrieve past Discord conversations from a user-authorized local discrawl archive while keeping message content, identifiers, attachments, and raw payloads private.

### Deployment Geography for Use:

Global

## Known Risks and Mitigations:

Risk: Search results may expose private Discord message content, author identifiers, attachments, or raw payloads from the local archive.

Mitigation: Search only the user-requested scope, keep results private, and avoid sending retrieved content to another channel or service without explicit approval.

Risk: User-provided terms copied into SQL examples could produce unsafe or overbroad local archive queries.

Mitigation: Prefer the bounded discrawl search commands or helper script, validate limits, and reserve SQL for fixed read-only queries authored by the operator.

## Reference(s):

- [Discrawl Database Schema Reference](references/schema.md)
- [Discrawl homepage](https://github.com/openclaw/discrawl)

## Skill Output:

**Output Type(s):** [Text, Markdown, Shell commands, Guidance]

**Output Format:** [Markdown with inline bash and SQL examples; bounded discrawl commands can emit JSON results.]

**Output Parameters:** [1D]

**Other Properties Related to Output:** [Searches should stay scoped to the user's request and use tight limits, channel filters, or author filters when available.]

## Skill Version(s):

1.0.1 (source: SKILL.md metadata, artifact _meta.json, release evidence)

## Ethical Considerations:

Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
Github ReposUpdated 2d agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/jonathanjing/skills/discrawl-search",
      "sourceUrl": "https://clawhub.ai/jonathanjing/skills/discrawl-search",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-11T19:39:32.966Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-jonathanjing-discrawl-search/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-jonathanjing-discrawl-search/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-11T19:39:32.966Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1K downloads",
      "href": "https://clawhub.ai/jonathanjing/discrawl-search",
      "sourceUrl": "https://clawhub.ai/jonathanjing/discrawl-search",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-11T19:39:32.966Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.0.1",
      "href": "https://clawhub.ai/jonathanjing/discrawl-search",
      "sourceUrl": "https://clawhub.ai/jonathanjing/discrawl-search",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-03T16:55:48.965Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-jonathanjing-discrawl-search/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-jonathanjing-discrawl-search/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.0.1",
      "description": "Replace interpolated SQL with bounded discrawl argv calls, validate limits, and declare private-history handling and current OpenClaw metadata.",
      "href": "https://clawhub.ai/jonathanjing/discrawl-search",
      "sourceUrl": "https://clawhub.ai/jonathanjing/discrawl-search",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-03T16:55:48.965Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 11, 2026.

For crawlers

This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.

  • One record, as JSON: card, facts, snapshot, contract, trust.
  • Every agent, one feed: /.well-known/ai-catalog.json
  • What this site sells, and the price: /.well-known/x402
  • Paid run-check: /api/v1/agents/clawhub-jonathanjing-discrawl-search/run-check

Sponsored

Ads related to discrawl-search and adjacent AI workflows.