--- name: reddit-readonly description: >- Browse and search Reddit in read-only mode using public JSON endpoints. Use when the user asks to browse subreddits, search for posts by topic, inspect comment threads, or build a shortlist of links to review and reply to manually. metadata: {"clawdbot":{"emoji":"🔎","requires":{"bins":["node"]}}} --- # Reddit Readonly Read-only Reddit browsing for Clawdbot. ## What this skill is for - Finding posts in one or more subreddits (hot/new/top/controversial/rising) - Searching for posts by query (within a subreddit or across all) - Pulling a comment thread for context - Producing a *shortlist of permalinks* so the user can open Reddit and reply manually ## Hard rules - **Read-only only.** This skill never posts, replies, votes, or moderates. - Be polite with requests: - Prefer small limits (5–10) first. - Expand only if needed. - When returning results to the user, always include **permalinks**. ## Output format All commands print JSON to stdout. - Success: `{ "ok": true, "data": ... }` - Failure: `{ "ok": false, "error": { "message": "...", "details": "..." } }` ## Commands ### 1) List posts in a subreddit ```bash node {baseDir}/scripts/reddit-readonly.mjs posts \ --sort hot|new|top|controversial|rising \ --time day|week|month|year|all \ --limit 10 \ --after ``` ### 2) Search posts ```bash # Search within a subreddit node {baseDir}/scripts/reddit-readonly.mjs search "" --limit 10 # Search all of Reddit node {baseDir}/scripts/reddit-readonly.mjs search all "" --limit 10 ``` ### 3) Get comments for a post ```bash # By post id or URL node {baseDir}/scripts/reddit-readonly.mjs comments --limit 50 --depth 6 ``` ### 4) Recent comments across a subreddit ```bash node {baseDir}/scripts/reddit-readonly.mjs recent-comments --limit 25 ``` ### 5) Thread bundle (post + comments) ```bash node {baseDir}/scripts/reddit-readonly.mjs thread --commentLimit 50 --depth 6 ``` ### 6) Find opportunities (multi-subreddit helper) Use this when the user describes criteria like: "Find posts about X in r/a, r/b, and r/c posted in the last 48 hours, excluding Y". ```bash node {baseDir}/scripts/reddit-readonly.mjs find \ --subreddits "python,learnpython" \ --query "fastapi deployment" \ --include "docker,uvicorn,nginx" \ --exclude "homework,beginner" \ --minScore 2 \ --maxAgeHours 48 \ --perSubredditLimit 25 \ --maxResults 10 \ --rank new ``` ## Suggested agent workflow 1. **Clarify scope** if needed: subreddits + topic keywords + timeframe. 2. Start with `find` (or `posts`/`search`) using small limits. 3. For 1–3 promising items, fetch context via `thread`. 4. Present the user a shortlist: - title, subreddit, score, created time - permalink - a brief reason why it matched 5. If asked, propose *draft reply ideas* in natural language, but remind the user to post manually. ## Troubleshooting - If Reddit returns HTML, re-run the command (the script detects this and returns an error). - If requests fail repeatedly, reduce `--limit` and/or set slower pacing via env vars: ```bash export REDDIT_RO_MIN_DELAY_MS=800 export REDDIT_RO_MAX_DELAY_MS=1800 export REDDIT_RO_TIMEOUT_MS=25000 export REDDIT_RO_USER_AGENT='script:clawdbot-reddit-readonly:v1.0.0 (personal)' ```