Skip to content
Marketing
Skill

/reddit-post-engine

Writes and optionally posts a Reddit post for any subreddit, following that subreddit's specific culture and rules. Drafts a title, body, and first comment using the 90/10 rule. Uses Composio Reddit MCP for optional direct posting. Use when asked to post on Reddit, draft a

From plugin
opendirectory-gtm-skills
70765 skills

Claude Code

$ npx -y skills add Varnan-Tech/opendirectory --skill reddit-post-engine --agent claude-code

SKILL.md

reddit-post-engine.SKILL.md
name: reddit-post-engine
description: Writes and optionally posts a Reddit post for any subreddit, following that subreddit's specific culture and rules. Drafts a title, body, and first comment using the 90/10 rule. Uses Composio Reddit MCP for optional direct posting. Use when asked to post on Reddit, draft a Reddit post, share a project on Reddit, write a subreddit post, or launch something on Reddit. Trigger when a user says "post this on Reddit", "write a Reddit post for r/...", "help me launch on Reddit", "draft something for Reddit", or "how do I share this on Reddit without getting banned".
author: OpenDirectory
version: 1.0.0

Reddit Post Engine

Draft a Reddit post that fits the subreddit's culture. Optionally post it via Composio.

---

**Critical rule:** Never post without confirming subreddit rules. Never include product links in the body: put them in the first comment only if appropriate. Follow the 90/10 rule: your post should add value independent of any product mention.

**Anti-spam rule:** Posts that are primarily promotional will be removed and may get the account banned. The goal is to contribute to the community first. Product mentions go in the first comment, and only if the subreddit allows self-promotion.

---

Step 1: Setup Check

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
# Check if Composio Reddit MCP is connected
claude mcp list 2>/dev/null | grep -i reddit || echo "Composio Reddit MCP: not connected"

**If GEMINI_API_KEY is missing:** Stop. Tell the user: "GEMINI_API_KEY is required. Get it at aistudio.google.com. Add it to your .env file."

**If Composio Reddit MCP is not connected:** Continue. The skill will draft posts but skip the posting step. Inform the user: "Composio Reddit MCP not connected: I'll draft your post for manual submission. To enable direct posting, see the setup instructions in README.md."

---

Step 2: Gather Context

You need:

  • Target subreddit (e.g., r/devops, r/startups, r/SideProject)
  • What you are sharing (project, article, question, discussion, tool)
  • One-sentence description of what it does
  • Why it's relevant to this specific subreddit's community
  • Whether you want a self-post (text) or link post

If any of these are missing, ask in one message:

"To draft your Reddit post, I need: 1. Which subreddit? (e.g., r/devops, r/startups) 2. What are you sharing? (project, article, tool, question) 3. What does it do? (one sentence, technical) 4. Why does this subreddit care about it specifically?"

---

Step 3: Fetch Subreddit Rules and Culture

**Fetch the subreddit's rules:**

curl -s \
  -H "User-Agent: varnan-skills/1.0" \
  "https://www.reddit.com/r/{SUBREDDIT}/about/rules.json" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
rules = d.get('rules', [])
for r in rules:
    print(f'Rule: {r.get(\"short_name\", \"\")}')
    print(f'Detail: {r.get(\"description\", \"\")[:200]}')
    print()
"

**Fetch recent top posts to understand tone and style:**

curl -s \
  -H "User-Agent: varnan-skills/1.0" \
  "https://www.reddit.com/r/{SUBREDDIT}/top.json?t=week&limit=10" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
for p in d['data']['children'][:10]:
    pd = p['data']
    print(f'Score: {pd[\"score\"]} | Title: {pd[\"title\"][:100]}')
"

Note patterns in the top posts:

  • Are titles questions or statements?
  • Do they lead with the technology or the outcome?
  • Are they personal ("I built...") or impersonal ("Tool for...")?
  • What format gets the most engagement in this subreddit?

**Check subreddit sidebar for posting rules:**

curl -s \
  -H "User-Agent: varnan-skills/1.0" \
  "https://www.reddit.com/r/{SUBREDDIT}/about.json" \
  | python3 -c "
import sys, json
d = json.load(sys.stdin)
data = d.get('data', {})
print('Public description:', data.get('public_description', '')[:300])
print('Subscribers:', data.get('subscribers', 0))
"

**Identify the subreddit type:**

| Type | Examples | Post style | |------|----------|-----------| | Technical practitioner | r/devops, r/sysadmin, r/ExperiencedDevs | Technical specifics, no fluff, "I did X and learned Y" | | Startup/builder | r/startups, r/SideProject, r/indiehackers | Personal story, metrics, lessons learned | | General tech | r/programming, r/technology | News angle, discussion hook, controversial take | | Career | r/cscareerquestions, r/ITCareerQuestions | Question format, specific scenario, ask for experience | | Niche tool | r/vim, r/rust, r/golang | Deep technical content, code examples, benchmarks |

Use the fetched rules and top posts to determine which style applies.

---

Step 4: Draft the Post with Gemini

Write the post content to a temp file and call Gemini:

cat > /tmp/reddit-post-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "You are a developer who is active in the {SUBREDDIT} community. Write a Reddit post that fits this subreddit's culture. Rules: (1) Write in first person if it is a project or experience post. (2) Do NOT include any product links in the body: links go in the first comment only. (3) The post must add genuine value to the community independent of any product being shared. (4) Match the tone of top posts in this subreddit: {SUBREDDIT_TONE_NOTES}. (5) Title max 300 characters. (6) Body 150-400 words for text posts. (7) No marketing language: no 'game-changing', 'powerful', 'robust', 'seamless', 'innovative'. (8) If the post is about a tool the user built, use the 'I made...' or 'I built...' opener: it performs best on Reddit. (9) Output: title on first line, blank line, then body. No labels, no commentary. Do not use em dashes."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "POST_DETAILS_HERE"
    }]
  }],
  "generationConfig": {
    "temperature": 0.7,
    "maxOutputTokens": 1024
  }
}
ENDJSON

curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$
Read more
@varnan-tech
Ships withopendirectory-gtm-skills

AI Agent Skills built for Founders who hate Marketing

Stars on GitHub

Momentum

stars in total
707
Star history of Varnan-Tech/opendirectory on GitHub, a chart by star-history.com

Other skills on opendirectory-gtm-skills.

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about reddit-post-engine.

Which coding agents can use reddit-post-engine?
reddit-post-engine installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.