Claude-skill-registry discord-sync

Sync Discord messages using USER TOKEN. Supports servers AND DMs. Use when routed here by community-agent:discord-sync or user explicitly requests user token sync.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/discord-sync" ~/.claude/skills/majiayu000-claude-skill-registry-discord-sync && rm -rf "$T"
manifest: skills/data/discord-sync/SKILL.md
source content

Discord User Token Sync

Syncs messages from Discord servers AND DMs using user token authentication.

When to Use

  • Routed here by
    community-agent:discord-sync
    preflight check
  • User explicitly asks for "user token sync"
  • User wants to sync DMs (bots cannot access DMs)
  • User wants rich profile data (bio, pronouns)

When NOT to Use

  • User just says "sync discord" - use
    community-agent:discord-sync
    instead (it will route here if appropriate)
  • User wants faster sync with bot token - use
    discord-bot-connector:discord-sync

Smart Defaults (Reduce Questions)

When user is vague, apply these defaults instead of asking:

User SaysDefault Action
"sync my Discord"Sync the configured default server from agents.yaml
"sync [server name]"Find server by name, sync with 7 days default
No --days specifiedDefault to 7 days
"sync everything"List available servers and ask user to pick

Only ask for clarification when:

  • User's server name matches multiple servers
  • User explicitly asks "which servers can I sync?"

How to Execute

Sync all channels in configured server:

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py

Sync specific channel:

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --channel CHANNEL_ID

Sync specific server:

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --server SERVER_ID

Sync with custom history range:

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --days 7

Full re-sync (ignore previous sync state):

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --full

Sync DMs

DMs are included by default. Use

--no-dms
to sync servers only.

Sync all (servers + DMs):

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py

Sync servers only (exclude DMs):

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --no-dms

Sync a specific DM by channel ID:

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --dm CHANNEL_ID

Sync DMs with custom message limit (default: 100):

python ${CLAUDE_PLUGIN_ROOT}/tools/discord_sync.py --dm-limit 500

DM Message Limits

DM Limit (
--dm-limit
)

  • Default: 100 (privacy-conscious default)
  • Lower than server channel limit by design
  • Increase manually if needed:
    --dm-limit 500

Server Channel Limit (
--limit
)

  • Default: 200 for quick mode
  • Use config file to set higher limits for full sync

Output Location

All paths are relative to cwd (current working directory):

Server Messages

Messages saved to:

./data/{server_id}/{channel_name}/messages.md

Sync state tracked in:

./data/{server_id}/sync_state.yaml

DM Messages

DM messages saved to:

./dms/discord/{user_id}-{username}/messages.md

DM manifest:

./dms/discord/manifest.yaml

Prerequisites

  • ./.env
    file with
    DISCORD_USER_TOKEN
    set (in cwd)
  • ./config/agents.yaml
    with
    discord.default_server_id
    configured (unless using --server flag)

Bot Token Alternative

For faster server message sync with higher rate limits (no DM access), use

discord-bot-connector:discord-sync
instead.

Incremental Sync

By default, sync is incremental - only new messages since last sync are fetched. Use

--full
to re-sync all messages within the date range.

Next Steps

After syncing, use discord-read skill to view or search messages.