setup/SKILL.md
Set up social-autoposter for a new user. Interactive wizard that installs via npm, creates the database, configures accounts, verifies browser logins, and optionally sets up scheduled automation. Use when: 'set up social autoposter', 'install social autoposter', 'configure social posting'.
npx skillsauth add m13v/social-autoposter social-autoposter-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Interactive setup wizard for social-autoposter. Walk the user through configuration step by step.
npx)pip3 for running helper scriptsRun these steps in order. Ask the user for input at each step. Don't skip ahead.
Check if already installed:
ls ~/social-autoposter/schema-postgres.sql 2>/dev/null && echo "FOUND" || echo "NOT_FOUND"
If NOT_FOUND, install:
npx social-autoposter init
This copies all scripts, skill files, and config templates to ~/social-autoposter/. It also:
config.json from config.example.json (if missing).env from .env.example (if missing) — includes pre-filled Neon DATABASE_URLpsycopg2-binary (Python driver for Neon)~/.claude/skills/social-autoposter → ~/social-autoposter/skillTo update scripts later without touching config/data:
npx social-autoposter update
Set SKILL_DIR=~/social-autoposter for the rest of this wizard.
Load the env and test the connection:
source "$SKILL_DIR/.env"
python3 -c "
import psycopg2, os
conn = psycopg2.connect(os.environ['DATABASE_URL'])
cur = conn.cursor()
cur.execute(\"SELECT COUNT(*) FROM posts\")
print('Connected. Posts in DB:', cur.fetchone()[0])
conn.close()
"
Expected: Connected. Posts in DB: <number> (any number is fine, including 0).
If psycopg2 is missing: pip3 install psycopg2-binary
If the connection fails, check that DATABASE_URL is set in $SKILL_DIR/.env.
config.json already exists at $SKILL_DIR/config.json. Edit it with the user's accounts.
Ask the user for each platform they want to use:
Reddit:
accounts.reddit.usernamebrowser (Reddit has no public posting API)X/Twitter:
accounts.twitter.handlebrowserLinkedIn:
accounts.linkedin.namebrowserMoltbook (optional):
$SKILL_DIR/.env and set MOLTBOOK_API_KEY=<key> (the file already exists from init)accounts.moltbook.username and accounts.moltbook.api_key_env in config.jsonThis step is the most important one. Take your time. The quality of every future post depends on it.
4a. Subreddits
Ask: "Which subreddits do you want to post in? (comma-separated, or press enter for defaults)"
Default suggestion: ClaudeAI, ClaudeCode, programming, webdev, devops
Write the list to config.json under subreddits.
4b. Content angle — interview the user
Don't just ask for a one-liner. Run a short interview to understand who they are, then write the angle for them.
Ask these questions one at a time. Wait for each answer before asking the next.
Question 1: "What are you currently working on or building? Be specific — what does it actually do?"
Question 2: "What's your technical background? What languages, tools, or domains do you know well?"
Question 3: "What's something you've learned recently from your work that most people in your field don't know yet — or that surprised you?"
Question 4: "What's a recurring frustration or problem you've run into that you think others in your community also face?"
Question 5: "Do you have any unusual setup or workflow? (e.g. running multiple AI agents, building on niche platforms, working solo on something usually done by teams)"
After collecting all answers, synthesize them into a content_angle that:
Show the draft to the user:
"Here's the content angle I'll use to write comments in your voice: [DRAFT] Does this sound like you? Want to change anything?"
Refine based on their feedback. Only save to config.json when they confirm it.
Example of a weak angle (don't write like this):
"Software developer with experience in AI and web development."
Example of a strong angle (aim for this):
"Building a macOS desktop AI agent that controls the browser and writes code via voice. Running 5 Claude agents in parallel on the same codebase — learned the hard way that they need zero file overlap or everything breaks. API costs hit $800/month before I got aggressive about caching."
4c. Projects
Ask: "Do you have any open source projects or products you'd want to mention naturally when the topic comes up? (y/n)"
If yes, for each project run through:
After each project, ask: "Any more projects to add? (y/n)"
Store each under config.json → projects array with fields: name, description, website, github, topics (array of strings).
The topics keywords are what trigger natural mentions — when someone in a thread mentions one of these topics, the agent knows this project is relevant to bring up.
For each configured platform, verify the user is logged in:
Reddit:
https://old.reddit.com using browser automationX/Twitter:
https://x.com/homeLinkedIn:
https://www.linkedin.com/feed/Moltbook:
source ~/social-autoposter/.env
curl -s -H "Authorization: Bearer $MOLTBOOK_API_KEY" "https://www.moltbook.com/api/v1/posts?limit=1"
Report which platforms are ready and which need attention.
Run the thread finder to verify everything works:
python3 "$SKILL_DIR/scripts/find_threads.py" --limit 3
Show the user the candidate threads found. Don't post anything — just verify the pipeline works.
Rate limit is 40 posts per 24 hours (enforced by the script).
Ask: "Do you want posts to run automatically on a schedule? (y/n)"
If yes, and on macOS:
$SKILL_DIR/launchd/~/Library/LaunchAgents/:
ln -sf "$SKILL_DIR/launchd/com.m13v.social-autoposter.plist" ~/Library/LaunchAgents/
ln -sf "$SKILL_DIR/launchd/com.m13v.social-stats.plist" ~/Library/LaunchAgents/
ln -sf "$SKILL_DIR/launchd/com.m13v.social-engage.plist" ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.m13v.social-autoposter.plist
launchctl load ~/Library/LaunchAgents/com.m13v.social-stats.plist
launchctl load ~/Library/LaunchAgents/com.m13v.social-engage.plist
If yes, and on Linux:
0 * * * * cd ~/social-autoposter && bash skill/run.sh
0 */6 * * * cd ~/social-autoposter && bash skill/stats.sh
0 */2 * * * cd ~/social-autoposter && bash skill/engage.sh
If no: "You can run manually anytime with /social-autoposter"
Read config.json accounts and compute each platform's stats URL:
@): https://s4l.ai/stats/HANDLEhttps://s4l.ai/stats/USERNAME%20): https://s4l.ai/stats/NAMEhttps://s4l.ai/stats/MOLTBOOK_USERNAMEPrint a summary with real values substituted:
Social Autoposter Setup Complete
Installed: ~/social-autoposter (v1.0.9 via npm)
Database: Neon Postgres (DATABASE_URL in .env)
Config: ~/social-autoposter/config.json
Env: ~/social-autoposter/.env
Skill: ~/.claude/skills/social-autoposter
Platforms:
Reddit: u/USERNAME ✓
X/Twitter: @HANDLE ✓
LinkedIn: NAME ✓
Moltbook: USERNAME ✓
Rate limit: 40 posts per 24 hours
Automation: launchd (hourly post, 6h stats, 2h engage)
Your live stats pages:
X/Twitter: https://s4l.ai/stats/HANDLE
Reddit: https://s4l.ai/stats/USERNAME
LinkedIn: https://s4l.ai/stats/NAME
Moltbook: https://s4l.ai/stats/MOLTBOOK_USERNAME
Try it: /social-autoposter
Update: npx social-autoposter update
Tell the user: "Your stats pages are ready — they'll show posts as soon as your first run completes and syncs to Neon (happens automatically after each post run). Bookmark the links above."
tools
End-to-end workflow for creating, rebuilding, or enhancing a client's website. Covers SEO audit, content extraction, Next.js scaffolding, real image/video assets, structured data, SEO guide pages, component injection, analytics, deployment, and dashboard registration. Includes concrete design system blueprints with exact Tailwind classes, component templates, and section layouts. Use when: 'create client website', 'rebuild website', 'recreate site', 'client landing page', 'SEO pages for client', or when onboarding a new client who needs a web presence.
tools
End-to-end workflow for creating, rebuilding, or enhancing a client's website. Covers SEO audit, content extraction, Next.js scaffolding, real image/video assets, structured data, SEO guide pages, component injection, analytics, deployment, and dashboard registration. Includes concrete design system blueprints with exact Tailwind classes, component templates, and section layouts. Use when: 'create client website', 'rebuild website', 'recreate site', 'client landing page', 'SEO pages for client', or when onboarding a new client who needs a web presence.
testing
Automate social media posting across Reddit, X/Twitter, LinkedIn, and Moltbook. Find threads, post comments, create original posts, track engagement stats. Use when: 'post to social', 'social autoposter', 'find threads to comment on', 'create a post', 'audit social posts', 'update post stats', or after completing any task (mandatory per CLAUDE.md).
tools
# Python CDP Browser Scripts Create Python functions that connect to running MCP browser agents via Chrome DevTools Protocol (CDP) and perform complete browser automation workflows. Replaces Claude browser MCP calls entirely — zero LLM tokens consumed. ## Usage ``` /python-cdp-scripts <platform> <action-description> /python-cdp-scripts linkedin "scrape engagement stats for our comments" /python-cdp-scripts linkedin "check if posts are deleted" /python-cdp-scripts linkedin "read unread DM conve