reddit-publish

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.

3,891 stars

Best use case

reddit-publish is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using reddit-publish should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/reddit-publish/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/1146345502/reddit-skills/skills/reddit-publish/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/reddit-publish/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How reddit-publish Compares

Feature / Agentreddit-publishStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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".

Related Skills

nansen-binance-publisher

3891
from openclaw/skills

Automatically fetch multi-dimensional on-chain data using Nansen CLI, compile a comprehensive and beautifully formatted daily report, and publish it to Binance Square. Auto-run on messages like 'generate nansen daily report', 'post nansen daily to square', or when the user triggers the slash commands `/nansen` or `/post_square`.

Content & Documentation

name: welight-wechat-layout-publish

3891
from openclaw/skills

description: Welight standalone skill for turning an article into WeChat Official Accounts compatible Markdown/HTML, presenting built-in theme choices, and publishing to WeChat as a draft or formal post when publishing prerequisites are already configured.

Content & Documentation

wechat-publisher

3891
from openclaw/skills

一键发布 Markdown 到微信公众号草稿箱。基于 wenyan-cli,支持多主题、代码高亮、图片自动上传。

Content & Documentation

reddit-interact

3891
from openclaw/skills

Reddit social interaction skill. Comment, reply, upvote, downvote, save posts. Triggered when user asks to comment, reply, vote, or save Reddit posts.

reddit-explore

3891
from openclaw/skills

Reddit content discovery skill. Browse subreddits, search posts, view post details, check user profiles. Triggered when user asks to search Reddit, browse subreddits, view posts, or check users.

reddit-content-ops

3891
from openclaw/skills

Reddit compound content operations skill. Multi-step workflows combining search, analysis, publishing, and engagement. Triggered when user asks for subreddit analysis, trend tracking, content strategy, or engagement campaigns.

reddit-auth

3891
from openclaw/skills

Reddit authentication management skill. Check login status, log out. Triggered when user asks to check Reddit login status or log out.

reddit-skills

3891
from openclaw/skills

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).

wechat-auto-publishing-complete

3891
from openclaw/skills

Use this skill to fully reproduce and operate a local end-to-end WeChat Official Account publishing workflow: prepare the environment, validate dependencies, configure non-sensitive placeholders for credentials, gather source material, draft articles, prepare cover and body images, assemble a WeChat-ready Markdown package, publish to draft, optionally submit for formal publication, poll status, archive outputs, and attach scheduling or alerting. Use whenever the user wants a complete reproducible公众号自动发文 skill with environment setup, templates, runbooks, and execution scaffolding, while keeping all secrets and personal account details outside the skill package. Key real-world findings: freepublish does not always behave like manual platform publishing for homepage visibility, production mode should often default to draft-only, image files must be validated by real format rather than extension alone, and multi-account deployments should use isolated directories.

ai-news-publisher

3891
from openclaw/skills

AI新闻一键发布技能。从36氪/虎嗅获取AI新闻,改写成爆款文章,发布到微信公众号。触发词:发布AI新闻、公众号发文章、科技新闻发布、爆款文章。

blog-publisher-lite

3891
from openclaw/skills

Publish markdown articles to Dev.to via their REST API. Use this skill whenever the user wants to publish a blog post or article to Dev.to.

aws-wechat-article-publish

3891
from openclaw/skills

将文章发布到微信公众号(API 写入草稿箱或提交发布),含发布前检查。当用户提到「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」时使用。