Finance-skills discord-reader
git clone https://github.com/himself65/finance-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/himself65/finance-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/social-readers/skills/discord-reader" ~/.claude/skills/himself65-finance-skills-discord-reader && rm -rf "$T"
plugins/social-readers/skills/discord-reader/SKILL.mdDiscord Skill (Read-Only)
Reads Discord for financial research using opencli, a universal CLI tool that bridges desktop apps and web services to the terminal via Chrome DevTools Protocol (CDP).
This skill is read-only. It is designed for financial research: searching trading server discussions, monitoring crypto/market groups, tracking sentiment in financial communities, and reading messages. It does NOT support sending messages, reacting, editing, deleting, or any write operations.
Important: opencli connects to the Discord desktop app via CDP — no bot account or token extraction needed. Just have Discord Desktop running.
Step 1: Ensure opencli Is Installed and Discord Is Ready
Current environment status:
!`(command -v opencli && opencli discord-app status 2>&1 | head -5 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"`
If the status above shows
READY, skip to Step 2. If NOT_INSTALLED, install first:
# Install opencli globally npm install -g @jackwener/opencli
If
SETUP_NEEDED, guide the user through setup:
Setup
opencli connects to Discord Desktop via CDP (Chrome DevTools Protocol). Two things are required:
- Start Discord with remote debugging enabled:
# macOS /Applications/Discord.app/Contents/MacOS/Discord --remote-debugging-port=9232 & # Linux discord --remote-debugging-port=9232 &
- Set the CDP endpoint environment variable:
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9232"
Add this to your shell profile (
.zshrc / .bashrc) so it persists across sessions.
- Verify connectivity:
opencli discord-app status
Common setup issues
| Symptom | Fix |
|---|---|
| Ensure Discord is running with |
| Run |
shows disconnected | Restart Discord with the CDP flag and retry |
| Discord not on expected port | Check that no other app is using port 9232, or use a different port |
Tip: create a shell alias
alias discord-cdp='/Applications/Discord.app/Contents/MacOS/Discord --remote-debugging-port=9232 &'
Step 2: Identify What the User Needs
Match the user's request to one of the read commands below, then use the corresponding command from
references/commands.md.
| User Request | Command | Key Flags |
|---|---|---|
| Connection check | | — |
| List servers | | |
| List channels | | |
| List online members | | |
| Read recent messages | | (count), |
| Search messages | | |
Note: opencli operates on the currently active server and channel in Discord. To read from a different channel, the user must navigate to it in the Discord app first, or use the
channels command to identify what's available.
Step 3: Execute the Command
General pattern
# Use -f json or -f yaml for structured output opencli discord-app servers -f json opencli discord-app channels -f json # Read recent messages from the active channel opencli discord-app read 50 -f json # Search for financial topics in the active channel opencli discord-app search "AAPL earnings" -f json opencli discord-app search "BTC pump" -f json
Key rules
- Check connection first — run
before any other commandopencli discord-app status - Use
or-f json
for structured output when processing data programmatically-f yaml - Navigate in Discord first — opencli reads from the currently active server/channel in the Discord app
- Start with small reads — use
unless the user asks for moreopencli discord-app read 20 - Use search for keywords —
uses Discord's built-in search (Cmd+F / Ctrl+F)opencli discord-app search - NEVER execute write operations — this skill is read-only; do not send messages, react, edit, delete, or manage server settings
Output format flag (-f
)
-f| Format | Flag | Best for |
|---|---|---|
| Table | (default) | Human-readable terminal output |
| JSON | | Programmatic processing, LLM context |
| YAML | | Structured output, readable |
| Markdown | | Documentation, reports |
| CSV | | Spreadsheet export |
Typical workflow for reading a server
# 1. Verify connection opencli discord-app status # 2. List servers to confirm you're in the right one opencli discord-app servers -f json # 3. List channels in the current server opencli discord-app channels -f json # 4. Read recent messages (navigate to target channel in Discord first) opencli discord-app read 50 -f json # 5. Search for topics of interest opencli discord-app search "price target" -f json
Step 4: Present the Results
After fetching data, present it clearly for financial research:
- Summarize key content — highlight the most relevant messages for the user's financial research
- Include attribution — show username, message content, and timestamp
- For search results, group by relevance and highlight key themes, sentiment, or market signals
- For server/channel listings, present as a clean table with names and types
- Flag sentiment — note bullish/bearish sentiment, consensus vs contrarian views
- Treat sessions as private — never expose CDP endpoints or session details
Step 5: Diagnostics
If something isn't working, check:
- Is Discord running with CDP?
# Check if the port is open lsof -i :9232
- Is the environment variable set?
echo $OPENCLI_CDP_ENDPOINT
- Can opencli connect?
opencli discord-app status
If all checks fail, restart Discord with the CDP flag:
/Applications/Discord.app/Contents/MacOS/Discord --remote-debugging-port=9232 & export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9232" opencli discord-app status
Error Reference
| Error | Cause | Fix |
|---|---|---|
| Discord not running with CDP or wrong port | Start Discord with |
| Missing environment variable | |
| Not viewing any channel in Discord | Navigate to a channel in the Discord app |
| Rate limited | Too many requests | Wait a few minutes, then retry |
Reference Files
— Complete read command reference with all flags and usage examplesreferences/commands.md
Read the reference file when you need exact command syntax or detailed flag descriptions.