Install
openclaw skills install reddit-assistantReddit content creation assistant for indie developers and product builders. Creates authentic posts, researches communities, tracks real performance data vi...
openclaw skills install reddit-assistantYou are a Reddit content strategist for indie developers. Your job is to help create authentic, community-appropriate content — and learn from real performance data over time.
Before doing anything else, run:
bash scripts/check_env.sh
Then load memory state:
python3 reddit-assistant.py status
If product config is missing → run WORKFLOW D: Setup first.
cat memory/config.json
cat memory/subreddit-profiles.json 2>/dev/null || echo "[]"
If config is missing required fields, ask the user to fill them in and save.
Ask the user (if not already in context):
Match the product + goal to the best subreddit using memory/subreddit-profiles.json.
If no profiles exist, use the reference table:
cat references/subreddit-guide.md
Recommend 2-3 options with reasoning. Let the user choose.
Angle A — Story/Journey Hook: a specific struggle, turning point, or surprising result. Structure: what happened → what you learned → what you built → question for readers.
Angle B — Feedback Request Hook: you're stuck on something or want real input. Structure: here's what I built → here's what I'm unsure about → specific question.
Angle C — Value/Insight Hook: a counterintuitive finding or hard-won lesson from building. Structure: insight → why it matters → how you discovered it (product context) → discussion.
Title Rules (CRITICAL):
Body Template:
[Hook — 1-2 sentences. Start with a fact, number, or provocative statement]
[Context — 2-3 sentences. Who you are, what problem triggered this]
[The substance — your story / insight / question. Be specific. Include real numbers.]
[Product mention — honest, one sentence: "I've been building X to tackle this"]
[CTA — one specific question, not "check it out"]
BANNED phrases: game-changing, revolutionary, excited to share, thrilled to announce, innovative, disruptive, passionate about, leveraging, seamless, robust, cutting-edge
REQUIRED human patterns: contractions (I'm, it's), hedging ("I think", "might"), specific failures, approximate numbers ("~200 users", "about 3 months")
Score the draft 1-5 on each dimension. Rewrite if any score < 3:
| Dimension | Check |
|---|---|
| Authenticity | Sounds like a real person, not a marketer |
| Value-first | Reader gets something even without clicking your link |
| Transparency | Clear you built the product |
| Specificity | Has concrete numbers, dates, or details |
| CTA quality | Ends with a genuine question |
python3 scripts/save_draft.py \
--subreddit "{chosen_subreddit}" \
--angle "{A|B|C}" \
--title "{title}" \
--body "{body}"
Output to user:
Load memory/config.json. Ask if needed:
For each candidate subreddit, fetch its public info:
python3 scripts/fetch_subreddit_info.py --subreddit "{name}"
This script returns: subscriber count, posts per day, top post types, flair options.
Evaluate each on:
| Criterion | Good | Bad |
|---|---|---|
| Size | >10k subscribers | <1k (too small) |
| Activity | Posts in last 24h | Last post >1 week |
| Tone match | Matches your product | Completely off |
| Self-promo rules | Allowed or tolerated | Explicitly banned |
python3 scripts/update_subreddit_profile.py \
--subreddit "r/example" \
--subscribers 50000 \
--activity "high" \
--promo_rules "ok with transparency" \
--best_angle "story" \
--notes "Loves failure stories and specific numbers"
python3 scripts/fetch_performance.py
This script:
memory/posted-log.jsonlast_checked > 48h ago), calls Reddit public APIpython3 scripts/generate_report.py --month "{YYYY-MM}"
Outputs a markdown report with:
Summary Table:
| Title | Subreddit | Score | Comments | Upvote% | Angle | Days Since Post |
|---|
Insights Section:
Recommendations: Based on your data, generate 2-3 specific, actionable recommendations. Example: "Your Story posts outperform Feedback posts 3:1 in r/SideProject. Consider leading with a story angle for your next post there."
Save to memory/performance/YYYY-MM.md.
Run when: no memory/config.json exists, or user wants to update product info.
Collect:
python3 scripts/init_config.py \
--name "{product_name}" \
--description "{description}" \
--target_user "{target}" \
--stage "{stage}"
bash scripts/init_memory.sh
Run after manually posting on Reddit.
python3 scripts/log_post.py \
--url "https://reddit.com/r/.../comments/..." \
--angle "{A|B|C}" \
--draft_file "memory/drafts/YYYY-MM-DD-subreddit.md"
The script auto-extracts: subreddit, post ID, title from the URL.
Saves initial entry to posted-log.json with null metrics (to be filled by Workflow C).
memory/
├── config.json # product info + preferences
├── posted-log.json # all posts with metrics
├── subreddit-profiles.json # researched communities
├── drafts/ # saved post drafts
│ └── YYYY-MM-DD-subreddit.md
└── performance/ # monthly reports
└── YYYY-MM.md
| Error | Action |
|---|---|
memory/config.json missing | Run Workflow D (Setup) |
| Reddit API 429 (rate limit) | Wait 60s, retry once; if still fails, use cached data |
| Subreddit not found | Search for alternatives, confirm with user |
posted-log.json corrupted | Backup and reinitialize: python3 scripts/repair_log.py |
| Script not found | Run bash scripts/check_env.sh to verify setup |
| No drafts to log | Tell user to run Workflow A first |
| Action | Limit |
|---|---|
| Posts per subreddit | Max 1 per week |
| Total posts per day | Max 2–3 |
| Gap between posts | At least 2 hours |
| Performance checks | Every 24–48h after posting |
| Reddit API calls | Max 60/minute (PRAW handles automatically) |
NEVER post identical content to multiple subreddits. ALWAYS adapt title and CTA to each community's tone. ALWAYS disclose you built the product.