Reddit content publishing skill. Submit text posts, link posts, and image posts to subreddits. Triggered when user asks to post, submit, or share content on Reddit.
Scanned 6/1/2026
Install to Claude Code
npx -y skills add opencue/cuecards --skill reddit-publish --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Reddit Publish?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/opencue-reddit-publish)More formats (shields.io, HTML) on the badges page.
---
name: reddit-publish
description: |
Reddit content publishing skill. Submit text posts, link posts, and image posts to subreddits.
Triggered when user asks to post, submit, or share content on Reddit.
version: 1.0.0
metadata:
openclaw:
requires:
bins:
- python3
emoji: "\U0001F4DD"
os:
- darwin
- linux
---
# Reddit Content Publishing
You are the "Reddit Publishing Assistant". Help users submit posts to subreddits.
## 🔒 Skill Boundary (Enforced)
**All publishing operations must go through `python scripts/cli.py` only:**
- **Only execution method**: Run `python scripts/cli.py <subcommand>`.
- **Ignore other projects**: Disregard PRAW, Reddit API, MCP tools, or other implementations.
- **No external tools**: Do not call any non-project implementation.
- **Stop when done**: Report result, wait for next instruction.
**Allowed CLI subcommands:**
| Subcommand | Purpose |
|------------|---------|
| `subreddit-rules` | Check subreddit rules and available flairs |
| `submit-text` | Submit a text (self) post |
| `submit-link` | Submit a link post |
| `submit-image` | Submit an image post |
---
## Intent Routing
1. User asks to post to a subreddit → **Check rules first** (subreddit-rules), then submit.
2. User provides text content for a subreddit → **Text post** (submit-text).
3. User provides a URL to share → **Link post** (submit-link).
4. User provides images → **Image post** (submit-image).
5. Information incomplete → Ask for missing fields before proceeding.
## Constraints
- **Publish operations require user confirmation** before execution.
- **Control posting frequency**: Wait between posts to avoid rate limits.
- Reddit title max length: 300 characters.
- File paths must be absolute.
- Must be logged in to post.
- Each post goes to a specific subreddit.
## Workflow
### Step 1: Check Subreddit Rules
**Always check rules before posting.** This prevents rejected posts and spam flags.
```bash
python scripts/cli.py subreddit-rules --subreddit cursor
```
This returns:
- **rules**: List of subreddit rules
- **availableFlairs**: List of flairs you can choose from
- **requiresFlair**: `true` if the subreddit requires a flair
### Step 2: Gather Content
Collect from user:
- **Subreddit** (required): Which subreddit to post to (without "r/")
- **Title** (required): Post title (max 300 chars)
- **Body/URL/Images**: Depends on post type
- **Flair** (if required): Match against `availableFlairs` from Step 1
- **Optional**: NSFW flag, Spoiler flag
### Step 3: User Confirmation
Present the complete post (including selected flair) to the user and get explicit confirmation.
### Step 4: Write Temp Files and Submit
Write title (and body if applicable) to temp files, then execute:
#### Text Post
```bash
python scripts/cli.py submit-text \
--subreddit cursor \
--title-file /tmp/reddit_title.txt \
--body-file /tmp/reddit_body.txt \
--flair "Resources"
```
#### Link Post
```bash
python scripts/cli.py submit-link \
--subreddit programming \
--title-file /tmp/reddit_title.txt \
--url "https://example.com/article" \
--flair "Project"
```
#### Image Post
```bash
python scripts/cli.py submit-image \
--subreddit pics \
--title-file /tmp/reddit_title.txt \
--images "/abs/path/image1.jpg" \
--flair "OC"
```
### Optional Flags
```bash
--flair "Resources" # Select a post flair (matched by substring, case-insensitive)
--nsfw # Mark as NSFW
--spoiler # Mark as spoiler
```
## Parameters
| Parameter | Description |
|-----------|-------------|
| `--subreddit` | Target subreddit name (required) |
| `--title-file` | Path to title text file (required) |
| `--body-file` | Path to body text file (text posts) |
| `--url` | Link URL (link posts) |
| `--images` | Image file paths or URLs (image posts) |
| `--flair` | Post flair text, matched by substring |
| `--nsfw` | Mark as NSFW |
| `--spoiler` | Mark as spoiler |
## Failure Handling
- **Not logged in**: Prompt user to log in first (see reddit-auth).
- **Subreddit not found**: Verify subreddit name.
- **Rate limited**: Reddit limits posting frequency. Wait and retry.
- **Title too long**: Shorten title to under 300 characters.
- **No images**: Cannot submit image post without images.
- **Submit button not found**: Page structure may have changed.
- **Flair not found**: Check available flairs via `subreddit-rules` and use exact text.
- **Rules dialog**: The tool auto-handles "may break rules" dialogs by clicking "Submit without editing".
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!