Reddit Commenter Skill
A skill for writing natural and valuable comments on Reddit communities.
by rokpiy·MIT license·★ 585 Stars on the repo·GitHub ↗
Use now
npx degit rokpiy/auto-commenter/.claude/skills/reddit-commenter#main ~/.claude/skills/reddit-commenterChecked ·commit main

From the rokpiy/auto-commenter README — shows the whole collection, not only this skill.view on GitHub
Files of Reddit Commenter Skill
SKILL.md
Show the full text246 lines
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_navigaterather 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 onlybrowser_snapshotfor 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 (Optional)
⚠️ CRITICAL: Judge accurately by referring to Step 3 analysis again
→ Refer to "Lead Selection Criteria" in leads/reddit.md
→ Classify as lead only users with actual problems (not hypothetical questions)
When lead discovered, update leads/reddit.md:
- Username, subreddit, post URL
- Post summary, selection reason, relevance
Step 8: Update Tracking
Update tracking/reddit/[today's-date].md file:
1. Activity status table by subreddit:
- Increment comment count for that subreddit by +1
- Update last comment time
2. Add to activity log:
### [HH:MM] r/subreddit
- **Post**: [Title](URL)
- **Topic Summary**: One-line summary of post content
- **Comment Link**: [Comment URL]
- **Comment Content**:
Full comment written
3. When potential customer discovered:
- Update 'leads/reddit.md' when potential customer discovered
File Reference Rules (Token Savings)
| File | Reference Timing |
|---|---|
resources/subreddits.md |
Step 1 (subreddit selection) |
resources/personalization_reddit.md |
Step 5 (review) |
resources/product.md |
Step 7 (potential customer judgment) |
leads/reddit.md |
Step 7 (lead criteria check) |
→ Reference only at relevant Step, don't read in advance
Cautions
- Login Required: Check Reddit account login status
- Rate Limiting: Too fast activity risks account restrictions
- Community Rules: Must follow each subreddit's rules
- Spam Prevention: Absolutely NO copy-pasting same content
- Review Required: Rewrite if any checklist item violated
- ⚠️ Step 3 Required: NEVER write comment without analyzing post content. Judging only by keywords can cause serious errors
- ⚠️ Minimize Playwright MCP tokens:
- Don't pass entire context when calling Playwright MCP
- Concisely summarize only essential information needed for each MCP call
- E.g.: Only minimal instructions like "Navigate to [URL]", "Click comment box", "Type: [text]"
- Prevent errors from excessive input tokens
- ⚠️ Post Navigation: Use browser_navigate directly with URL instead of clicking post (prevents click errors)
| 1 | |
| 2 | name reddit-commenter |
| 3 | description A skill for writing natural and valuable comments on Reddit communities. Includes the complete workflow from subreddit exploration, comment writing, review, posting, to tracking. |
| 4 | license MIT |
| 5 | |
| 6 | |
| 7 | # Reddit Commenter Skill |
| 8 | |
| 9 | > Reddit Comment Automation - From Exploration to Posting and Tracking |
| 10 | |
| 11 | |
| 12 | |
| 13 | ## Required Tool: Playwright MCP |
| 14 | |
| 15 | This skill uses **Playwright MCP** to interact with Reddit. |
| 16 | |
| 17 | ### Main MCP Tools |
| 18 | | MCP Tool | Purpose | |
| 19 | |----------|---------| |
| 20 | | `browser_navigate` | Navigate to Reddit pages | |
| 21 | | `browser_snapshot` | Capture page structure (accessibility tree) | |
| 22 | | `browser_click` | Click elements (comment box, buttons, etc.) | |
| 23 | | `browser_type` | Input text (comment content) | |
| 24 | | `browser_wait_for` | Wait for page loading | |
| 25 | |
| 26 | ### ⚠️ Important Notes When Using Playwright MCP |
| 27 | **Minimize tokens**: When calling MCP, don't pass entire conversation context—only concisely summarize the essential information needed for that action |
| 28 | **Direct navigation**: Navigate directly to URLs with `browser_navigate` rather than clicking elements (prevents click errors, saves tokens) |
| 29 | **Concise instructions**: Pass only minimal instructions like "Navigate to [URL]", "Click [element]", "Type: [text]" |
| 30 | **⚠️ 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) |
| 31 | |
| 32 | |
| 33 | |
| 34 | ## Execution Workflow |
| 35 | |
| 36 | ### Step 1: Check Activity Status and Select Subreddit |
| 37 | |
| 38 | |
| 39 | 1. Check today's date file in tracking/reddit/ folder |
| 40 | → File name: YYYY-MM-DD.md (e.g., 2026-01-12.md) |
| 41 | → If file doesn't exist, create new one referencing template.md |
| 42 | |
| 43 | 2. Check activity status table by subreddit: |
| 44 | - How many comments posted in each subreddit today |
| 45 | - Check subreddits under daily limit (3) |
| 46 | - Check last comment time (minimum 5-10 minute intervals) |
| 47 | |
| 48 | 3. Select next subreddit for commenting: |
| 49 | - Prioritize subreddits with no activity today or under limit |
| 50 | - Prioritize subreddits with oldest last activity time |
| 51 | |
| 52 | 4. Check subreddit specifics in resources/subreddits.md: |
| 53 | - Core community rules |
| 54 | - Community nature |
| 55 | - Good topics to answer |
| 56 | → Reflect this information when selecting posts |
| 57 | |
| 58 | |
| 59 | ### Step 2: Access Reddit and Explore Posts |
| 60 | |
| 61 | |
| 62 | 1. Access Reddit with Playwright MCP |
| 63 | → browser_navigate("https://www.reddit.com/r/{selected_subreddit}/new/") |
| 64 | or |
| 65 | → browser_navigate("https://www.reddit.com/r/{selected_subreddit}/rising/") |
| 66 | |
| 67 | 2. Page snapshot |
| 68 | → browser_snapshot() |
| 69 | |
| 70 | 3. Criteria for selecting posts to comment on: |
| 71 | • Posts where you can share insights or provide feedback |
| 72 | • ⚠️ CRITICAL: Posts you haven't commented on today |
| 73 | - Check activity log in tracking/reddit/today's-date.md file |
| 74 | - Extract list of post URLs from today's comments |
| 75 | - Verify selected post URL is NOT in that list |
| 76 | - Absolutely NO duplicate comments on same post |
| 77 | • OK even if not related to your service/field |
| 78 | • Relevance to "good topics to answer" from Step 1 |
| 79 | • Avoid posts with already hundreds of comments |
| 80 | |
| 81 | 4. Secure URL of selected post |
| 82 | → Check and record post link in snapshot |
| 83 | → Navigate directly to this URL in next Step |
| 84 | |
| 85 | |
| 86 | ### Step 3: Deep Analysis of Post Content and Existing Comments |
| 87 | |
| 88 | |
| 89 | ⚠️ CRITICAL: Must perform this step before writing comment |
| 90 | |
| 91 | 0. Navigate directly to post |
| 92 | → browser_navigate(post URL secured in Step 2) |
| 93 | → Navigate directly to URL, don't click on post (prevents click errors) |
| 94 | → browser_snapshot() |
| 95 | |
| 96 | 1. Read post content accurately: |
| 97 | - Understand what OP is actually asking |
| 98 | - Don't react only to keywords—understand full context |
| 99 | - Distinguish between hypothetical questions and actual problem complaints |
| 100 | |
| 101 | 2. Understand OP's intent: |
| 102 | - Seeking specific help? (problem solving) |
| 103 | - Seeking opinions/discussion? (hypothetical scenario) |
| 104 | - Information sharing? (experience story) |
| 105 | |
| 106 | 3. Analyze existing comments: |
| 107 | - Check how others interpreted |
| 108 | - Understand how community is receiving this post |
| 109 | - Check tone and answering style |
| 110 | |
| 111 | 4. Decide comment direction: |
| 112 | - Is this post worth answering? |
| 113 | - From what angle should I answer? |
| 114 | - Can I naturally answer in my style? |
| 115 | |
| 116 | 5. ⚠️ CRITICAL: Determine if site/link verification needed: |
| 117 | - Did OP provide website/app link? |
| 118 | - Are there expressions like "feedback requested", "honest feedback", "looking for feedback"? |
| 119 | - Is feedback requested on UX, design, performance that requires actual verification? |
| 120 | |
| 121 | → If YES: |
| 122 | • Visit actual site with browser_navigate(provided link) |
| 123 | • Check UI/UX with browser_snapshot() |
| 124 | • Write feedback based ONLY on what you actually saw |
| 125 | • Absolutely NO speculative feedback on things you didn't see |
| 126 | |
| 127 | → If NO: |
| 128 | • Can answer from post content alone |
| 129 | • General advice or experience sharing |
| 130 | |
| 131 | ⚠️ Proceed to Step 4 only after clearly verifying analysis results |
| 132 | |
| 133 | |
| 134 | ### Step 4: Write Comment |
| 135 | |
| 136 | |
| 137 | 1. Draft comment based on Step 3 analysis results: |
| 138 | - Answer matching OP's actual question |
| 139 | - Practically helpful content |
| 140 | - Match subreddit tone |
| 141 | - Focus on 1-2 points (don't try to explain everything) |
| 142 | |
| 143 | |
| 144 | ### Step 5: Personalization Review (Loop) |
| 145 | |
| 146 | |
| 147 | 1. Check resources/personalization_reddit.md file |
| 148 | → Sequentially check 16 personalization checklist items based on actual comment style |
| 149 | → Especially important: #4 personal experience, #13 experience pattern, #15 question intent understanding, #16 site verification |
| 150 | |
| 151 | 2. Check style patterns: |
| 152 | • Which pattern (1-8) is it closest to? |
| 153 | • Does it capture that pattern's characteristics well? |
| 154 | • Does it look like you wrote it? |
| 155 | |
| 156 | 3. Review process: |
| 157 | • All items PASS → Proceed to Step 6 |
| 158 | • Any violation → Revise comment and re-review from Step 5 beginning |
| 159 | |
| 160 | |
| 161 | |
| 162 | **Detailed personalization guide**: See `resources/personalization_reddit.md` |
| 163 | |
| 164 | ### Step 6: Post Comment |
| 165 | |
| 166 | |
| 167 | 1. Click comment input box |
| 168 | → Check comment input element after browser_snapshot() |
| 169 | → browser_click(comment box ref) |
| 170 | |
| 171 | 2. Input comment content |
| 172 | → browser_type(reviewed comment) |
| 173 | |
| 174 | 3. Click post button |
| 175 | → browser_click(post button ref) |
| 176 | |
| 177 | 4. Secure comment URL |
| 178 | → Copy comment permalink after posting |
| 179 | |
| 180 | |
| 181 | ### Step 7: Judge Potential Customer (Optional) |
| 182 | |
| 183 | |
| 184 | ⚠️ CRITICAL: Judge accurately by referring to Step 3 analysis again |
| 185 | |
| 186 | → Refer to "Lead Selection Criteria" in leads/reddit.md |
| 187 | → Classify as lead only users with actual problems (not hypothetical questions) |
| 188 | |
| 189 | When lead discovered, update leads/reddit.md: |
| 190 | - Username, subreddit, post URL |
| 191 | - Post summary, selection reason, relevance |
| 192 | |
| 193 | |
| 194 | ### Step 8: Update Tracking |
| 195 | |
| 196 | |
| 197 | Update tracking/reddit/[today's-date].md file: |
| 198 | |
| 199 | 1. Activity status table by subreddit: |
| 200 | - Increment comment count for that subreddit by +1 |
| 201 | - Update last comment time |
| 202 | |
| 203 | 2. Add to activity log: |
| 204 | ### [HH:MM] r/subreddit |
| 205 | - **Post**: [Title](URL) |
| 206 | - **Topic Summary**: One-line summary of post content |
| 207 | - **Comment Link**: [Comment URL] |
| 208 | - **Comment Content**: |
| 209 | |
| 210 | Full comment written |
| 211 | |
| 212 | |
| 213 | 3. When potential customer discovered: |
| 214 | - Update 'leads/reddit.md' when potential customer discovered |
| 215 | |
| 216 | |
| 217 | |
| 218 | |
| 219 | ## File Reference Rules (Token Savings) |
| 220 | |
| 221 | | File | Reference Timing | |
| 222 | |------|------------------| |
| 223 | | `resources/subreddits.md` | Step 1 (subreddit selection) | |
| 224 | | `resources/personalization_reddit.md` | Step 5 (review) | |
| 225 | | `resources/product.md` | Step 7 (potential customer judgment) | |
| 226 | | `leads/reddit.md` | Step 7 (lead criteria check) | |
| 227 | |
| 228 | → Reference only at relevant Step, don't read in advance |
| 229 | |
| 230 | |
| 231 | |
| 232 | ## Cautions |
| 233 | |
| 234 | **Login Required**: Check Reddit account login status |
| 235 | **Rate Limiting**: Too fast activity risks account restrictions |
| 236 | **Community Rules**: Must follow each subreddit's rules |
| 237 | **Spam Prevention**: Absolutely NO copy-pasting same content |
| 238 | **Review Required**: Rewrite if any checklist item violated |
| 239 | **⚠️ Step 3 Required**: NEVER write comment without analyzing post content. Judging only by keywords can cause serious errors |
| 240 | **⚠️ Minimize Playwright MCP tokens**: |
| 241 | Don't pass entire context when calling Playwright MCP |
| 242 | Concisely summarize only essential information needed for each MCP call |
| 243 | E.g.: Only minimal instructions like "Navigate to [URL]", "Click comment box", "Type: [text]" |
| 244 | Prevent errors from excessive input tokens |
| 245 | **⚠️ Post Navigation**: Use browser_navigate directly with URL instead of clicking post (prevents click errors) |
| 246 |
Discussion
Browse more free Claude skills.