mcpField
R
reddit

reddit

github.com/redf0x1Other432123 installsUpdated 5d ago
Repository

About reddit

A CamoFox CLI skill for automating common Reddit activities, including browsing, posting, commenting, and voting. It documents session-based authentication, platform-specific workflows, and rate-limit precautions.

Key features

  1. 01Browse feeds and subreddits
  2. 02Create posts and comments
  3. 03Reply and vote
  4. 04Save and restore sessions
  5. 05Platform-specific workflow guidance

Use cases

  1. 01Browsing Reddit with a saved session
  2. 02Posting to a subreddit
  3. 03Commenting or replying on a post

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/redf0x1/camofox-browser --skill reddit

After installing, type/redditin Claude Code to confirm it loaded.

Bundled filesreferences/workflow-reference.md

Details

From the project README

Reddit Automation Skill

Automate Reddit using CamoFox CLI anti-detection browser. All workflows verified on 2026-03-04 with zero CAPTCHAs triggered across 50+ operations.

1. Prerequisites

  • CamoFox browser running: camofox server status
  • A saved Reddit session (see Section 2)
  • Install: npm install -g camofox-browser

2. Authentication

Reddit login uses reCAPTCHA Enterprise — automated credential entry is blocked. Use session-based auth:

First time — login manually in CamoFox, then save:

camofox session save "reddit-session" --user reddit

Subsequent times — restore saved session:

camofox open https://www.reddit.com --user reddit
camofox session load "reddit-session" --user reddit
camofox navigate https://www.reddit.com [tabId]
camofox snapshot [tabId]

Verify: username visible in snapshot confirms login.

Store credentials for reference:

camofox auth save reddit-main --url https://www.reddit.com --notes "Reddit account"

3. Browse Feed

camofox open https://www.reddit.com --user reddit
camofox session load "reddit-session" --user reddit
camofox navigate https://www.reddit.com [tabId]
camofox snapshot [tabId]
camofox scroll down [tabId] --amount 500
camofox snapshot [tabId]
camofox get-links [tabId]

4. Browse Subreddit

camofox navigate https://old.reddit.com/r/test [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]

Old Reddit has simpler HTML structure — easier to parse post listings.

5. Comment on Post (Old Reddit)

IMPORTANT: Use eval to fill textarea — standard type causes 500 errors on old Reddit.

camofox navigate https://old.reddit.com/r/test/comments/POST_ID/ [tabId]
camofox snapshot [tabId]
camofox eval "const ta = document.querySelector('.usertext-edit textarea'); ta.value = 'Your comment'; ta.dispatchEvent(new Event('input', {bubbles: true})); ta.dispatchEvent(new Event('change', {bubbles: true}));" [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]

Why eval? Reddit's old textarea causes Internal Server Error when filled via browser automation type. Setting textarea.value via JavaScript works reliably.

6. Create Post (New Reddit)

IMPORTANT: Use www.reddit.com — old Reddit has visible reCAPTCHA that blocks posting.

camofox navigate "https://www.reddit.com/r/test/submit?type=TEXT" [tabId]
camofox snapshot [tabId]
camofox type [eN] "Your Post Title" [tabId]
camofox snapshot [tabId]
camofox type [eN] "Post content with markdown." [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox wait navigation [tabId] --timeout 5000
camofox snapshot [tabId]

7. Reply to Comment (Old Reddit)

camofox navigate https://old.reddit.com/r/test/comments/POST_ID/ [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]
camofox eval "const tas = document.querySelectorAll('.usertext-edit textarea'); const rb = Array.from(tas).find(t => t.offsetParent !== null && t.value === ''); if (rb) { rb.value = 'Your reply'; rb.dispatchEvent(new Event('input', {bubbles: true})); rb.dispatchEvent(new Event('change', {bubbles: true})); }" [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]

8. Upvote / Downvote

camofox snapshot [tabId]
camofox click [eN] [tabId]

Vote buttons appear as arrow icon refs in the snapshot.

9. Session Management

camofox session save "reddit-session" --user reddit
camofox session load "reddit-session" --user reddit
camofox session list
camofox session delete "reddit-session"

10. Rate Limiting

  • Wait 2+ minutes between comments/replies
  • Wait 10+ minutes between posts for new/low-karma accounts
  • Add delays: camofox wait networkidle [tabId] --timeout 3000
  • Higher karma accounts have relaxed limits

11. Anti-Detection

  • CamoFox anti-detection fully effective on Reddit (0 CAPTCHAs in 50+ operations)
  • Reddit serves ads to CamoFox = treats as real user
  • Use consistent userId ("reddit") across sessions
  • Do NOT clear cookies between actions
  • No special proxy or fingerprint settings needed

12. Platform Selection

ActionPlatformReason
LoginManual onlyreCAPTCHA Enterprise
Commentold.reddit.comPlain HTML forms
Replyold.reddit.comPlain HTML forms
Create Postwww.reddit.comNo visible CAPTCHA
BrowseEitherBoth work
VoteEitherBoth work

13. Troubleshooting

IssueCauseFix
Login CAPTCHAreCAPTCHA EnterpriseUse saved sessions
Post CAPTCHA on old RedditreCAPTCHA v2Use new Reddit
Comment 500 errortype on old RedditUse eval with textarea.value
Text doubledLexical editor bugUse eval for input
Rate limitedRapid actionsWait 2+ minutes
SPA link failsReddit SPAUse camofox navigate
Session expiredCookies expiredRe-login and save

14. Complete Example

#!/bin/bash
USER="reddit"
SESSION="reddit-session"

TAB=$(camofox open https://www.reddit.com --user $USER --format json | jq -r '.tabId')
camofox session load $SESSION --user $USER

camofox navigate https://old.reddit.com/r/test $TAB
camofox snapshot $TAB

camofox eval "const ta = document.querySelector('.usertext-edit textarea'); ta.value = 'Automated via CamoFox CLI'; ta.dispatchEvent(new Event('input', {bubbles: true})); ta.dispatchEvent(new Event('change', {bubbles: true}));" $TAB

camofox session save $SESSION --user $USER
camofox close --user $USER

Comments

Markdown supported