Skip to main content
ClaudeWave
Skill571 repo starsupdated 2mo ago

reddit-commenter

The reddit-commenter skill automates the process of writing and posting comments on Reddit by managing subreddit selection, exploring posts, composing contextually appropriate comments, and tracking activity across multiple communities. Use this skill to maintain consistent, natural engagement on target subreddits while respecting daily posting limits and minimum intervals between comments, with built-in safeguards to avoid duplicate commenting.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/rokpiy/auto-commenter /tmp/reddit-commenter && cp -r /tmp/reddit-commenter/.claude/skills/reddit-commenter ~/.claude/skills/reddit-commenter
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Reddit Commenter Skill

> Reddit Comment Automation - From Exploration to Posting and Tracking

---

## Required Tool: Playwright MCP

This skill uses **Playwright MCP** to interact with Reddit.

### Main MCP Tools
| MCP Tool | Purpose |
|----------|---------|
| `browser_navigate` | Navigate to Reddit pages |
| `browser_snapshot` | Capture page structure (accessibility tree) |
| `browser_click` | Click elements (comment box, buttons, etc.) |
| `browser_type` | Input text (comment content) |
| `browser_wait_for` | Wait for page loading |

### ⚠️ Important Notes When Using Playwright MCP
- **Minimize tokens**: When calling MCP, don't pass entire conversation context—only concisely summarize the essential information needed for that action
- **Direct navigation**: Navigate directly to URLs with `browser_navigate` rather than clicking elements (prevents click errors, saves tokens)
- **Concise instructions**: Pass only minimal instructions like "Navigate to [URL]", "Click [element]", "Type: [text]"
- **⚠️ No screenshots**: Do NOT use `browser_take_screenshot`. Always use only `browser_snapshot` for page verification (accessibility tree is sufficient and doesn't save files)

---

## Execution Workflow

### Step 1: Check Activity Status and Select Subreddit

```
1. Check today's date file in tracking/reddit/ folder
   → File name: YYYY-MM-DD.md (e.g., 2026-01-12.md)
   → If file doesn't exist, create new one referencing template.md

2. Check activity status table by subreddit:
   - How many comments posted in each subreddit today
   - Check subreddits under daily limit (3)
   - Check last comment time (minimum 5-10 minute intervals)

3. Select next subreddit for commenting:
   - Prioritize subreddits with no activity today or under limit
   - Prioritize subreddits with oldest last activity time

4. Check subreddit specifics in resources/subreddits.md:
   - Core community rules
   - Community nature
   - Good topics to answer
   → Reflect this information when selecting posts
```

### Step 2: Access Reddit and Explore Posts

```
1. Access Reddit with Playwright MCP
   → browser_navigate("https://www.reddit.com/r/{selected_subreddit}/new/")
   or
   → browser_navigate("https://www.reddit.com/r/{selected_subreddit}/rising/")

2. Page snapshot
   → browser_snapshot()

3. Criteria for selecting posts to comment on:
   • Posts where you can share insights or provide feedback
   • ⚠️ CRITICAL: Posts you haven't commented on today
     - Check activity log in tracking/reddit/today's-date.md file
     - Extract list of post URLs from today's comments
     - Verify selected post URL is NOT in that list
     - Absolutely NO duplicate comments on same post
   • OK even if not related to your service/field
   • Relevance to "good topics to answer" from Step 1
   • Avoid posts with already hundreds of comments

4. Secure URL of selected post
   → Check and record post link in snapshot
   → Navigate directly to this URL in next Step
```

### Step 3: Deep Analysis of Post Content and Existing Comments

```
⚠️ CRITICAL: Must perform this step before writing comment

0. Navigate directly to post
   → browser_navigate(post URL secured in Step 2)
   → Navigate directly to URL, don't click on post (prevents click errors)
   → browser_snapshot()

1. Read post content accurately:
   - Understand what OP is actually asking
   - Don't react only to keywords—understand full context
   - Distinguish between hypothetical questions and actual problem complaints

2. Understand OP's intent:
   - Seeking specific help? (problem solving)
   - Seeking opinions/discussion? (hypothetical scenario)
   - Information sharing? (experience story)

3. Analyze existing comments:
   - Check how others interpreted
   - Understand how community is receiving this post
   - Check tone and answering style

4. Decide comment direction:
   - Is this post worth answering?
   - From what angle should I answer?
   - Can I naturally answer in my style?

5. ⚠️ CRITICAL: Determine if site/link verification needed:
   - Did OP provide website/app link?
   - Are there expressions like "feedback requested", "honest feedback", "looking for feedback"?
   - Is feedback requested on UX, design, performance that requires actual verification?

   → If YES:
     • Visit actual site with browser_navigate(provided link)
     • Check UI/UX with browser_snapshot()
     • Write feedback based ONLY on what you actually saw
     • Absolutely NO speculative feedback on things you didn't see

   → If NO:
     • Can answer from post content alone
     • General advice or experience sharing

⚠️ Proceed to Step 4 only after clearly verifying analysis results
```

### Step 4: Write Comment

```
1. Draft comment based on Step 3 analysis results:
   - Answer matching OP's actual question
   - Practically helpful content
   - Match subreddit tone
   - Focus on 1-2 points (don't try to explain everything)
```

### Step 5: Personalization Review (Loop)

```
1. Check resources/personalization_reddit.md file
   → Sequentially check 16 personalization checklist items based on actual comment style
   → Especially important: #4 personal experience, #13 experience pattern, #15 question intent understanding, #16 site verification

2. Check style patterns:
   • Which pattern (1-8) is it closest to?
   • Does it capture that pattern's characteristics well?
   • Does it look like you wrote it?

3. Review process:
   • All items PASS → Proceed to Step 6
   • Any violation → Revise comment and re-review from Step 5 beginning

```

**Detailed personalization guide**: See `resources/personalization_reddit.md`

### Step 6: Post Comment

```
1. Click comment input box
   → Check comment input element after browser_snapshot()
   → browser_click(comment box ref)

2. Input comment content
   → browser_type(reviewed comment)

3. Click post button
   → browser_click(post button ref)

4. Secure comment URL
   → Copy comment permalink after posting
```

### Step 7: Judge Potential Customer (Option