Skip to content
Back to skills

Reddit Publish

ASecurity

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.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 1, 2026
ai-agentspythongobashapi

Works with

  • cursor
  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned June 1, 2026

npx -y skills add opencue/cuecards --skill reddit-publish --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reddit Publish?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reddit Publish
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/opencue-reddit-publish/badge)](https://www.skillsdirectory.com/skills/opencue-reddit-publish)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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".

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…