SKILL.md
$2c
# Install opencli globally
npm install -g @jackwener/opencli
If SETUP_NEEDED, guide the user through setup:
Setup
opencli requires Node.js >= 21. It connects to Discord Desktop via CDP (Chrome DevTools Protocol) — no Browser Bridge extension is needed for the Discord adapter. 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
CDP connection refused
Ensure Discord is running with --remote-debugging-port=9232
OPENCLI_CDP_ENDPOINT not set
Run export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9232"
status 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
opencli discord-app status
—
List servers
opencli discord-app servers
-f json
List channels
opencli discord-app channels
-f json
List online members
opencli discord-app members
-f json
Read recent messages
opencli discord-app read
N (count), -f json
Search messages
opencli discord-app search "QUERY"
-f json
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
opencli discord-app statusbefore any other command
- **Use
-f jsonor-f yaml** for structured output when processing data programmatically
- Navigate in Discord first — opencli reads from the currently active server/channel in the Discord app
- Start with small reads — use
opencli discord-app read 20unless the user asks for more
- Use search for keywords —
opencli discord-app searchuses Discord's built-in search (Cmd+F / Ctrl+F)
- NEVER execute write operations — this skill is read-only. opencli exposes
discord-app sendanddiscord-app deletecommands; do not invoke them. Do not send messages, react, edit, delete, or manage server settings.
Output format flag ( -f )
Format
Flag
Best for
Table
-f table (default)
Human-readable terminal output
JSON
-f json
Programmatic processing, LLM context
YAML
-f yaml
Structured output, readable
Markdown
-f md
Documentation, reports
CSV
-f 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
CDP connection refused
Discord not running with CDP or wrong port
Start Discord with --remote-debugging-port=9232
OPENCLI_CDP_ENDPOINT not set
Missing environment variable
export OPENCLI_CDP_ENDPOINT="http://127.0.0.1:9232"
No active channel
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
references/commands.md— Complete read command reference with all flags and usage examples
Read the reference file when you need exact command syntax or detailed flag descriptions.