Skip to content

Latest commit

 

History

History
154 lines (105 loc) · 4.12 KB

File metadata and controls

154 lines (105 loc) · 4.12 KB

Reddit Skill for Clawdbot

Browse, search, post to, and moderate any subreddit from your agent.

Quick Start

Read-only (no setup needed):

node scripts/reddit.mjs posts news --limit 5
node scripts/reddit.mjs search all "breaking news"

Posting & Moderation (requires OAuth):

  1. Create a Reddit app at https://www.reddit.com/prefs/apps
  2. Set environment variables (see Setup below)
  3. Run node scripts/reddit.mjs login once to authorize

Setup for Posting/Moderation

1. Create a Reddit App

  1. Go to https://www.reddit.com/prefs/apps
  2. Scroll down and click "create another app..."
  3. Fill in:
    • name: anything (e.g., "clawdbot")
    • type: select script
    • redirect uri: http://localhost:8080/callback
  4. Click Create app
  5. Note your:
    • Client ID — the string under your app name
    • Client Secret — labeled "secret"

2. Set Environment Variables

Add these to your shell profile or Clawdbot's environment:

export REDDIT_CLIENT_ID="your_client_id"
export REDDIT_CLIENT_SECRET="your_client_secret"
export REDDIT_USERNAME="your_reddit_username"
export REDDIT_PASSWORD="your_reddit_password"

3. Authorize (One Time)

node scripts/reddit.mjs login

This opens a browser for OAuth. After authorizing, a token is saved to ~/.reddit-token.json and auto-refreshes.


Personalizing the Skill

The SKILL.md file tells your agent how to use this skill. You'll want to customize it for your setup:

Update the Examples

Replace the generic subreddit names (wallstreetbets, yoursubreddit) with the ones you actually use:

# Before
node {baseDir}/scripts/reddit.mjs posts wallstreetbets

# After
node {baseDir}/scripts/reddit.mjs posts mysubreddit

Add Your Subreddits to the Notes

At the bottom of SKILL.md, add a section listing your subreddits:

## My Subreddits

- **r/mysubreddit** — I'm a mod here (full access)
- **r/interestingtopic** — I follow this one
- **r/anotherone** — Read-only

This helps your agent know what it can do where.

Customize the User-Agent (Optional)

In scripts/reddit.mjs, you can personalize the User-Agent string:

// Find this line near the top:
const USER_AGENT = 'script:clawdbot-reddit:v1.0.0';

// Change to something like:
const USER_AGENT = 'script:my-reddit-bot:v1.0.0 (by /u/your_username)';

Reddit recommends including your username so they can contact you if needed.


Commands Reference

Command Auth Required Description
posts <subreddit> No Get hot/new/top posts
search <subreddit|all> <query> No Search posts
comments <post_id> No Get comments on a post
submit <subreddit> --title "..." --text "..." Yes Create a text post
submit <subreddit> --title "..." --url "..." Yes Create a link post
reply <thing_id> "text" Yes Reply to a post or comment
mod remove <thing_id> Yes + Mod Remove post/comment
mod approve <thing_id> Yes + Mod Approve post/comment
mod sticky <post_id> Yes + Mod Sticky a post
mod queue <subreddit> Yes + Mod View mod queue
login Start OAuth flow
whoami Yes Check logged-in user

Options

  • --sort hot|new|top|controversial — Sort order for posts
  • --time day|week|month|year|all — Time filter for top/controversial
  • --limit N — Number of results (default: 25)

Rate Limits

  • With OAuth: ~60 requests/minute
  • Without OAuth: ~10 requests/minute

The skill handles token refresh automatically.


Troubleshooting

"Missing REDDIT_CLIENT_ID or REDDIT_CLIENT_SECRET"
→ Environment variables aren't set. Check your shell profile or Clawdbot config.

"Not logged in. Run: node reddit.mjs login"
→ You need to authorize first. Run the login command.

"Reddit returned HTML instead of JSON"
→ Reddit sometimes does this under load. Wait a moment and try again.

Token file location: ~/.reddit-token.json
→ Delete this file to force re-authorization.


License

MIT — do whatever you want with it.