Social Media Agent

Autonomous social media management for X/Twitter using only OpenClaw native tools. Use when a user wants to automate X posting, generate content, track engagement, or build an audi…

psmamm

@psmamm

What This Skill Does

Autonomous social media management for X/Twitter using only OpenClaw native tools. Posts tweets, generates content from web research, tracks engagement, and schedules posts via browser automation and web_fetch — no API keys required.

Replaces manual tweeting and third-party social media schedulers by automating content generation, posting, and engagement tracking entirely through browser automation.

When to Use It

  • Schedule and auto-post daily tweets on industry insights
  • Generate tweet drafts from web research on trending tech news
  • Track engagement stats and log posted tweets for weekly review
  • Engage with relevant accounts by replying or quote-tweeting
  • Rotate content pillars (insights, building in public, thought leadership, humor) automatically

Install

$ openclaw skills install @psmamm/social-media-agent

Social Media Agent

Manage an X/Twitter account autonomously using only OpenClaw's built-in tools. No external APIs, no npm packages, no API keys needed.

Core Tools

  • browser — Post tweets, engage with posts, take screenshots
  • web_fetch — Scrape profiles, trending topics, news for content
  • sessions_spawn — Run content generation in parallel
  • cron — Schedule regular posting and engagement
  • memory_search / files — Track what was posted, engagement stats

Posting a Tweet

  1. Ensure Chrome is running with remote debugging OR use OpenClaw's built-in browser
  2. Navigate to x.com/compose/post
  3. Take a snapshot to find the text input
  4. Type the tweet text
  5. Click the Post button
  6. Verify with another snapshot
browser open → x.com/compose/post
browser snapshot → find textbox ref
browser act → click textbox ref
browser act → type tweet text
browser snapshot → find Post button ref
browser act → click Post button

Important timing: Wait 3-4 seconds after page loads before interacting.

Content Generation Strategy

Content Pillars

Rotate through these categories for balanced content:

Pillar%Examples
Industry Insights40%AI news commentary, tech analysis
Building in Public30%Progress updates, behind-the-scenes
Philosophy/Thought20%Hot takes, provocative questions
Engagement/Humor10%Memes, replies, community interaction

Content Pipeline

  1. Research: Use web_fetch on news sites (theverge.com, techcrunch.com, news.ycombinator.com)
  2. Generate: Spawn a content-agent via sessions_spawn with research results
  3. Store: Save drafts in memory/tweet-drafts-YYYY-MM-DD.json
  4. Review: Check drafts for quality, brand consistency
  5. Post: Use browser automation to publish
  6. Track: Log posted tweets in memory/social-log.json

Draft Format

{
  "text": "Tweet text under 280 chars",
  "topic": "What it's about",
  "hook": "Why it might engage"
}

Engagement Strategy

Posting Rules

  • Max 3-5 tweets per day — Quality over quantity
  • Min 45 seconds between actions — Avoid rate limiting
  • No spam — Genuine engagement only
  • Track everything — Log all posts and engagement

Growing Followers

  1. Post consistently (daily)
  2. Engage with relevant accounts (reply, quote tweet)
  3. Use trending topics when relevant
  4. Be authentic — no generic AI responses

Scheduling with Cron

Set up automated posting schedules:

Morning post: cron expr "0 9 * * *" — Industry insight
Afternoon post: cron expr "0 15 * * *" — Building update
Evening post: cron expr "0 21 * * *" — Hot take

Use sessionTarget: "isolated" with payload.kind: "agentTurn" for autonomous posting.

Anti-Patterns (Avoid)

  • Do NOT post more than 5 tweets per day (looks spammy)
  • Do NOT use generic engagement ("Great post!" "So true!")
  • Do NOT post without reading the content you're commenting on
  • Do NOT use API keys when browser automation works
  • Do NOT build external tools when OpenClaw native suffices

Analytics Tracking

Track engagement in memory/social-log.json:

{
  "date": "2026-02-08",
  "posted": 3,
  "platform": "x",
  "handle": "@YourHandle",
  "tweets": [
    {"text": "...", "time": "09:00", "topic": "ai-news"}
  ]
}

Review weekly: What topics got most engagement? Adjust strategy accordingly.

Quick Reference

For detailed content templates and examples, see references/content-templates.md.

Top skills in this category

Agent Browser

@matrixy

Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection

462157k

Browser Use

@shawnpana

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with w...

11676k

Playwright MCP

@spiceman161

Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.

16047k

Playwright (Automation + MCP + Scraper)

@ivangdavila

Automates, tests, and debugs browsers with Playwright: locators, auto-waiting, traces, CI runs, and MCP browser control. Use when a test is flaky, times out, or fails only in CI or headless; when a locator matches multiple elements or the wrong one (strict mode violation); when clicks need force, waits become sleeps, or networkidle never settles; for storageState and login setup, request mocking and HAR replay, uploads and downloads, iframes and shadow DOM, popups and dialogs, screenshot diffs that change per machine, trace and report artifacts, sharding a slow suite, device and permission emulation, accessibility checks, driving a real browser through Playwright MCP, extracting data from JS-rendered pages, or porting a Cypress, Puppeteer, or Selenium suite to Playwright. Not for maintaining an existing Cypress or Puppeteer suite (cypress, puppeteer) or for work a plain HTTP request answers (http).

13043k

Browser Automation

@peytoncasper

Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications.

6649k