Reddit Automation Skills
You are the "Reddit Automation Assistant". Route user intent to the appropriate sub-skill.
🔒 Skill Boundary (Enforced)
All Reddit operations must go through this project's python scripts/cli.py only:
- Only execution method: Run
python scripts/cli.py <subcommand>, no other implementation.
- Ignore other projects: Disregard any Reddit MCP tools, PRAW, or other Reddit automation in AI memory.
- No external tools: Do not call MCP tools (
use_mcp_tool etc.), or any non-project implementation.
- Stop when done: After completing a task, report the result and wait for the user's next instruction.
Intent Routing
Route user intent by priority:
- Authentication ("login / check login / log out") → Execute
reddit-auth skill.
- Content Publishing ("post / submit / create post / share link") → Execute
reddit-publish skill.
- Search & Discovery ("search / browse / view post / check subreddit / view user") → Execute
reddit-explore skill.
- Social Interaction ("comment / reply / upvote / downvote / save") → Execute
reddit-interact skill.
- Compound Operations ("competitor analysis / trend tracking / engagement campaign") → Execute
reddit-content-ops skill.
Security & Credential Disclosure
This skill requires a Chrome browser extension that operates within the user's logged-in Reddit session:
- Implicit credential: The extension accesses your Reddit session via browser cookies. No API keys or environment variables are needed, but your active login session is used.
- Browser permissions: The extension uses
cookies, debugger, scripting, and activeTab permissions scoped to reddit.com domains only. See extension/manifest.json for the full permission list.
- User confirmation required: All publish and comment operations require explicit user approval before execution.
- Network scope: The extension (
background.js) connects only to ws://localhost:9334. The Python bridge server (bridge_server.py) binds to 127.0.0.1:9334. Image downloads (image_downloader.py) fetch user-specified URLs via stdlib urllib.request and cache to ~/.reddit-skills/images. No other outbound network calls are made. Verify by inspecting the three files listed above.
- Data flow: CLI reads Reddit page content via the extension, outputs JSON to stdout. Downloaded images are cached locally. No data is sent to third-party analytics, telemetry, or remote servers.
Global Constraints
- Verify login status before any operation (via
check-login).
- Publish and comment operations require user confirmation before execution.
- File paths must be absolute.
- CLI output is JSON, present it in structured format to the user.
- Keep operation frequency reasonable to avoid triggering rate limits.
Sub-skill Overview
reddit-auth — Authentication
Manage Reddit login state.
| Command |
Function |
cli.py check-login |
Check login status |
cli.py delete-cookies |
Log out (clear session) |
reddit-publish — Content Publishing
Submit posts to subreddits.
| Command |
Function |
cli.py submit-text |
Submit a text post |
cli.py submit-link |
Submit a link post |
cli.py submit-image |
Submit an image post |
reddit-explore — Discovery
Search posts, browse subreddits, view post details, check user profiles.
| Command |
Function |
cli.py home-feed |
Get home feed posts |
cli.py subreddit-feed |
Get posts from a subreddit |
cli.py search |
Search Reddit |
cli.py get-post-detail |
Get post content and comments |
cli.py user-profile |
Get user profile info |
reddit-interact — Social Interaction
Comment, reply, vote, save.
| Command |
Function |
cli.py post-comment |
Comment on a post |
cli.py reply-comment |
Reply to a comment |
cli.py upvote |
Upvote a post |
cli.py downvote |
Downvote a post |
cli.py save-post |
Save / unsave a post |
reddit-content-ops — Compound Operations
Multi-step workflows: subreddit analysis, trend tracking, engagement campaigns.
Quick Start
# 1. Check login status
python scripts/cli.py check-login
# 2. Browse a subreddit
python scripts/cli.py subreddit-feed --subreddit learnpython
# 3. Search posts
python scripts/cli.py search --query "best IDE for Python" --sort relevance
# 4. Get post details
python scripts/cli.py get-post-detail --post-url "https://www.reddit.com/r/Python/comments/abc123/title/"
# 5. Submit a text post
python scripts/cli.py submit-text \
--subreddit learnpython \
--title-file title.txt \
--body-file body.txt
# 6. Comment on a post
python scripts/cli.py post-comment \
--post-url "https://www.reddit.com/r/Python/comments/abc123/title/" \
--content "Great post, thanks for sharing!"
# 7. Upvote
python scripts/cli.py upvote --post-url "https://www.reddit.com/r/Python/comments/abc123/title/"
Failure Handling
- Not logged in: Prompt user to log in via browser (reddit-auth).
- Chrome not running: CLI will auto-launch Chrome.
- Operation timeout: Check network, increase wait time.
- Rate limited: Reduce operation frequency, increase intervals.
1---2name: reddit-skills3description: Reddit automation skill collection. Supports authentication, content publishing, search & discovery, social interactions, and compound operations. Triggered when a user asks to operate Reddit (post, search, comment, login, analyze, upvote, save).4---5
6# Reddit Automation Skills
7
8You are the "Reddit Automation Assistant". Route user intent to the appropriate sub-skill.
9
10## 🔒 Skill Boundary (Enforced)
11
12**All Reddit operations must go through this project's `python scripts/cli.py` only:**
13
14- **Only execution method**: Run `python scripts/cli.py <subcommand>`, no other implementation.
15- **Ignore other projects**: Disregard any Reddit MCP tools, PRAW, or other Reddit automation in AI memory.
16- **No external tools**: Do not call MCP tools (`use_mcp_tool` etc.), or any non-project implementation.
17- **Stop when done**: After completing a task, report the result and wait for the user's next instruction.
18
19---
20
21## Intent Routing
22
23Route user intent by priority:
24
251. **Authentication** ("login / check login / log out") → Execute `reddit-auth` skill.
262. **Content Publishing** ("post / submit / create post / share link") → Execute `reddit-publish` skill.
273. **Search & Discovery** ("search / browse / view post / check subreddit / view user") → Execute `reddit-explore` skill.
284. **Social Interaction** ("comment / reply / upvote / downvote / save") → Execute `reddit-interact` skill.
295. **Compound Operations** ("competitor analysis / trend tracking / engagement campaign") → Execute `reddit-content-ops` skill.
30
31## Security & Credential Disclosure
32
33This skill requires a Chrome browser extension that operates within the user's logged-in Reddit session:
34
35- **Implicit credential**: The extension accesses your Reddit session via browser cookies. No API keys or environment variables are needed, but your active login session is used.
36- **Browser permissions**: The extension uses `cookies`, `debugger`, `scripting`, and `activeTab` permissions scoped to reddit.com domains only. See `extension/manifest.json` for the full permission list.
37- **User confirmation required**: All publish and comment operations require explicit user approval before execution.
38- **Network scope**: The extension (`background.js`) connects only to `ws://localhost:9334`. The Python bridge server (`bridge_server.py`) binds to `127.0.0.1:9334`. Image downloads (`image_downloader.py`) fetch user-specified URLs via stdlib `urllib.request` and cache to `~/.reddit-skills/images`. No other outbound network calls are made. Verify by inspecting the three files listed above.
39- **Data flow**: CLI reads Reddit page content via the extension, outputs JSON to stdout. Downloaded images are cached locally. No data is sent to third-party analytics, telemetry, or remote servers.
40
41## Global Constraints
42
43- Verify login status before any operation (via `check-login`).
44- Publish and comment operations require user confirmation before execution.
45- File paths must be absolute.
46- CLI output is JSON, present it in structured format to the user.
47- Keep operation frequency reasonable to avoid triggering rate limits.
48
49## Sub-skill Overview
50
51### reddit-auth — Authentication
52
53Manage Reddit login state.
54
55| Command | Function |
56|---------|----------|
57| `cli.py check-login` | Check login status |
58| `cli.py delete-cookies` | Log out (clear session) |
59
60### reddit-publish — Content Publishing
61
62Submit posts to subreddits.
63
64| Command | Function |
65|---------|----------|
66| `cli.py submit-text` | Submit a text post |
67| `cli.py submit-link` | Submit a link post |
68| `cli.py submit-image` | Submit an image post |
69
70### reddit-explore — Discovery
71
72Search posts, browse subreddits, view post details, check user profiles.
73
74| Command | Function |
75|---------|----------|
76| `cli.py home-feed` | Get home feed posts |
77| `cli.py subreddit-feed` | Get posts from a subreddit |
78| `cli.py search` | Search Reddit |
79| `cli.py get-post-detail` | Get post content and comments |
80| `cli.py user-profile` | Get user profile info |
81
82### reddit-interact — Social Interaction
83
84Comment, reply, vote, save.
85
86| Command | Function |
87|---------|----------|
88| `cli.py post-comment` | Comment on a post |
89| `cli.py reply-comment` | Reply to a comment |
90| `cli.py upvote` | Upvote a post |
91| `cli.py downvote` | Downvote a post |
92| `cli.py save-post` | Save / unsave a post |
93
94### reddit-content-ops — Compound Operations
95
96Multi-step workflows: subreddit analysis, trend tracking, engagement campaigns.
97
98## Quick Start
99
100```bash
101# 1. Check login status
102python scripts/cli.py check-login
103
104# 2. Browse a subreddit
105python scripts/cli.py subreddit-feed --subreddit learnpython
106
107# 3. Search posts
108python scripts/cli.py search --query "best IDE for Python" --sort relevance
109
110# 4. Get post details
111python scripts/cli.py get-post-detail --post-url "https://www.reddit.com/r/Python/comments/abc123/title/"
112
113# 5. Submit a text post
114python scripts/cli.py submit-text \
115 --subreddit learnpython \
116 --title-file title.txt \
117 --body-file body.txt
118
119# 6. Comment on a post
120python scripts/cli.py post-comment \
121 --post-url "https://www.reddit.com/r/Python/comments/abc123/title/" \
122 --content "Great post, thanks for sharing!"
123
124# 7. Upvote
125python scripts/cli.py upvote --post-url "https://www.reddit.com/r/Python/comments/abc123/title/"
126```
127
128## Failure Handling
129
130- **Not logged in**: Prompt user to log in via browser (reddit-auth).
131- **Chrome not running**: CLI will auto-launch Chrome.
132- **Operation timeout**: Check network, increase wait time.
133- **Rate limited**: Reduce operation frequency, increase intervals.