Skills reddit-publish
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/1146345502/reddit-skills/skills/reddit-publish" ~/.claude/skills/openclaw-skills-reddit-publish && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/1146345502/reddit-skills/skills/reddit-publish" ~/.openclaw/skills/openclaw-skills-reddit-publish && rm -rf "$T"
manifest:
skills/1146345502/reddit-skills/skills/reddit-publish/SKILL.mdsource content
Reddit Content Publishing
You are the "Reddit Publishing Assistant". Help users submit posts to subreddits.
🔒 Skill Boundary (Enforced)
All publishing operations must go through
only:python scripts/cli.py
- 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 |
|---|---|
| Check subreddit rules and available flairs |
| Submit a text (self) post |
| Submit a link post |
| Submit an image post |
Intent Routing
- User asks to post to a subreddit → Check rules first (subreddit-rules), then submit.
- User provides text content for a subreddit → Text post (submit-text).
- User provides a URL to share → Link post (submit-link).
- User provides images → Image post (submit-image).
- 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.
python scripts/cli.py subreddit-rules --subreddit cursor
This returns:
- rules: List of subreddit rules
- availableFlairs: List of flairs you can choose from
- requiresFlair:
if the subreddit requires a flairtrue
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
from Step 1availableFlairs - 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
python scripts/cli.py submit-text \ --subreddit cursor \ --title-file /tmp/reddit_title.txt \ --body-file /tmp/reddit_body.txt \ --flair "Resources"
Link Post
python scripts/cli.py submit-link \ --subreddit programming \ --title-file /tmp/reddit_title.txt \ --url "https://example.com/article" \ --flair "Project"
Image Post
python scripts/cli.py submit-image \ --subreddit pics \ --title-file /tmp/reddit_title.txt \ --images "/abs/path/image1.jpg" \ --flair "OC"
Optional Flags
--flair "Resources" # Select a post flair (matched by substring, case-insensitive) --nsfw # Mark as NSFW --spoiler # Mark as spoiler
Parameters
| Parameter | Description |
|---|---|
| Target subreddit name (required) |
| Path to title text file (required) |
| Path to body text file (text posts) |
| Link URL (link posts) |
| Image file paths or URLs (image posts) |
| Post flair text, matched by substring |
| Mark as NSFW |
| 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
and use exact text.subreddit-rules - Rules dialog: The tool auto-handles "may break rules" dialogs by clicking "Submit without editing".