✓ Verified 💻 Development ✓ Enhanced Data

Twitter Autopilot

Automate Twitter/X posting, engagement, and growth for OpenClaw AI agents.

Rating
4.6 (33 reviews)
Downloads
14,256 downloads
Version
1.0.0

Overview

Automate Twitter/X posting, engagement, and growth for OpenClaw AI agents.

Complete Documentation

View Source →

Twitter Autopilot

End-to-end Twitter/X automation for AI agents running on OpenClaw.

Requirements & Scope

Credentials (all set as env vars)

VariableRequiredDescription
TWITTER_API_KEYOAuth 1.0a consumer key
TWITTER_API_SECRETOAuth 1.0a consumer secret
TWITTER_ACCESS_TOKENOAuth 1.0a user token
TWITTER_ACCESS_SECRETOAuth 1.0a user secret
TWITTER_BEARER_TOKENOptionalOAuth 2.0 bearer (needed for reads/follows)

Dependencies

  • tweepy (pip install)

Files Read/Written

PathAccessPurpose
twitter/MODE.mdReadDraft vs auto mode flag
twitter/queue.mdRead/WriteApproved tweets waiting to post
twitter/drafts/pending.mdRead/WriteUnapproved drafts
twitter/posted-log.mdRead/WriteFull history of posted tweets (duplicate check)
twitter/logs/WriteEngagement and posting logs

Scope

  • ⚠️ Posts tweets to Twitter/X (public, real-world impact)
  • Reads/writes local draft and log files
  • Can run autonomously via cron (check MODE.md to control)

Setup

1. Get API Keys

  • Go to developer.x.com → create a project + app
  • Set app permissions to Read and Write
  • Generate: API Key, API Secret, Access Token, Access Token Secret
  • Generate Bearer Token: curl -u "API_KEY:API_SECRET" -d "grant_type=client_credentials" "https://api.twitter.com/oauth2/token"

2. Set Environment Variables

bash
TWITTER_API_KEY=your_api_key
TWITTER_API_SECRET=your_api_secret
TWITTER_ACCESS_TOKEN=your_access_token
TWITTER_ACCESS_SECRET=your_access_token_secret
TWITTER_BEARER_TOKEN=your_bearer_token

3. Install Dependency

bash
pip install tweepy

Usage

All commands via scripts/tweet.py:

bash
# Post (auto-threads if >280 chars)
python tweet.py post "your tweet text here"

# Reply to a tweet
python tweet.py reply TWEET_ID "your reply"

# Quote tweet
python tweet.py quote TWEET_ID "your take"

# Retweet
python tweet.py retweet TWEET_ID

# Delete
python tweet.py delete TWEET_ID

# Follow / Unfollow
python tweet.py follow @username
python tweet.py unfollow @username

# Check mentions
python tweet.py mentions

# Account stats
python tweet.py me

Long Tweets → Auto-Thread

Free API tier limits single tweets to 280 chars. The post command auto-splits at sentence boundaries into a thread when text exceeds 280 chars.

For manual threads, call thread from Python:

python
from tweet import thread
thread(["Tweet 1", "Tweet 2", "Tweet 3"])

Draft Workflow

For agents that need human approval before posting:

  • Create twitter/MODE.md with content DRAFT or AUTO
  • Create twitter/drafts/pending.md for queued drafts
  • In cron jobs, check MODE.md before posting:
  • DRAFT → append to pending.md, notify human
  • AUTO → post directly, log to twitter/logs/

Gotchas

  • Free tier: 280 char limit per tweet, rate limits on posting (~50/day write, reads limited)
  • 401 on follows/reads: You need a Bearer Token (OAuth 2.0), not just OAuth 1.0a keys
  • 403 on long tweets: Free tier rejects >280 chars — use auto-thread
  • Shell escaping: Avoid passing tweets with quotes via shell args — use Python directly for complex text
  • Rate limits: Add time.sleep(1) between batch operations (follows, thread posts)

Strategy

See references/content-strategy.md for the full tweet writing playbook:

  • X algorithm breakdown (engagement hierarchy, peak times, dwell time)
  • 6 hook formulas with examples (bold, specific result, curiosity gap, story, pattern interrupt, question)
  • 6 tweet formats (listicle, contrarian, before/after, framework, universal experience, fill-in-blank)
  • Copywriting frameworks (PAS, BAB, AIDA)
  • Thread structure template (7-8 tweet sweet spot)
  • Growth tactics (30-day subtopic, reply strategy, 80/20 rule)
  • AI agent-specific tips
See references/strategy-templates.md for content pillars, engagement playbooks, and cron schedule templates.

Key Lessons (from real usage)

  • AIs that BUILD things get followers. AIs that post thoughts don't.
  • Engage with the AI agent community — they engage back.
  • High volume matters early (5-10+ posts/day including replies).
  • Self-deprecating humor > motivational quotes.
  • Draft mode for new accounts — one bad tweet can tank trust.
  • ALWAYS check twitter/posted-log.md before posting — crons can reword the same topic and create duplicates. Compare ideas, not just exact text.
  • Say your human's name (e.g. "Alex"), not "my human" — sounds more personal and real.
  • Log EVERY posted tweet to twitter/posted-log.md with full text, ID, date, and source.

Installation

Terminal bash

openclaw install twitter-autopilot
    
Copied!

💻Code Examples

### 2. Set Environment Variables

-2-set-environment-variables.sh
TWITTER_API_KEY=your_api_key
TWITTER_API_SECRET=your_api_secret
TWITTER_ACCESS_TOKEN=your_access_token
TWITTER_ACCESS_SECRET=your_access_token_secret
TWITTER_BEARER_TOKEN=your_bearer_token

python tweet.py me

python-tweetpy-me.txt
### Long Tweets → Auto-Thread
Free API tier limits single tweets to 280 chars. The `post` command auto-splits at sentence boundaries into a thread when text exceeds 280 chars.

For manual threads, call `thread` from Python:
example.sh
# Post (auto-threads if >280 chars)
python tweet.py post "your tweet text here"

# Reply to a tweet
python tweet.py reply TWEET_ID "your reply"

# Quote tweet
python tweet.py quote TWEET_ID "your take"

# Retweet
python tweet.py retweet TWEET_ID

# Delete
python tweet.py delete TWEET_ID

# Follow / Unfollow
python tweet.py follow @username
python tweet.py unfollow @username

# Check mentions
python tweet.py mentions

# Account stats
python tweet.py me

Tags

#coding_agents-and-ides

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author persnola1-sketch
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install twitter-autopilot