X/Twitter Automation Guide (XActions)
XActions is a TypeScript library for automating X (Twitter) actions. Features browser automation, thread posting, engagement monitoring, and DM management — with anti-detection and rate-limit-aware scheduling.
Features
| Feature | Description | Rate Limit Aware |
|---|---|---|
| Post Tweets | Single tweets and threads | ✅ |
| Engagement | Like, retweet, reply, bookmark | ✅ |
| Search | Advanced search with filters | ✅ |
| Followers | Follow, unfollow, list management | ✅ |
| DMs | Send and read direct messages | ✅ |
| Analytics | Tweet performance, follower growth | ✅ |
| Scheduling | Queue tweets for future posting | ✅ |
| Scraping | Extract tweets, profiles, threads | ✅ |
Quick Start
npm install xactions
import { XClient } from 'xactions';
const client = new XClient({
// Cookie-based auth (no API keys needed)
cookies: process.env.X_COOKIES,
// OR API-based auth
apiKey: process.env.X_API_KEY,
apiSecret: process.env.X_API_SECRET,
accessToken: process.env.X_ACCESS_TOKEN,
accessSecret: process.env.X_ACCESS_SECRET,
});
Posting
Single Tweet
await client.tweet('Just minted my first ERC-8004 agent on @SperaxOfficial! 🤖');
Thread
await client.thread([
'Thread: Understanding Sperax USDs auto-yield 🧵',
'1/ USDs is a stablecoin that earns yield automatically just by holding it in your wallet',
'2/ The yield comes from deploying collateral into battle-tested DeFi protocols',
'3/ Current APY: ~7% — no staking, no locking, no claiming required',
'4/ Available on Arbitrum. Learn more: https://app.sperax.io'
]);
With Media
await client.tweet('Check out this chart! 📈', {
media: ['./chart.png'],
altText: 'SPA price chart showing 50% gain this month'
});
Search & Scraping
Advanced Search
const tweets = await client.search({
query: 'sperax OR USDs OR $SPA',
filter: 'latest',
minLikes: 5,
minReplies: 2,
lang: 'en',
since: '2024-01-01',
limit: 100
});
Profile Scraping
const profile = await client.getProfile('SperaxOfficial');
// { followers, following, tweets, joined, bio, ... }
const tweets = await client.getUserTweets('SperaxOfficial', { limit: 50 });
Engagement
// Like a tweet
await client.like(tweetId);
// Retweet
await client.retweet(tweetId);
// Reply
await client.reply(tweetId, 'Great insight! USDs auto-yield makes this even better');
// Bookmark
await client.bookmark(tweetId);
Scheduling
import { Scheduler } from 'xactions';
const scheduler = new Scheduler(client);
// Schedule a tweet for later
scheduler.schedule('New Sperax Farm pools launching tomorrow! 🚀', {
time: new Date('2024-12-01T09:00:00Z'),
timezone: 'America/New_York'
});
// Schedule recurring tweets
scheduler.recurring({
template: 'Daily DeFi tip: ${tip}',
data: tips,
frequency: 'daily',
time: '09:00',
timezone: 'UTC'
});
Analytics
// Get tweet performance
const analytics = await client.getTweetAnalytics(tweetId);
// { impressions, likes, retweets, replies, quotes, bookmarks, engagementRate }
// Follower growth over time
const growth = await client.getFollowerGrowth({
period: '30d',
granularity: 'daily'
});
Anti-Detection
XActions includes built-in anti-detection:
- Randomized delays between actions
- Human-like typing simulation
- Fingerprint randomization
- Proxy rotation support
- Rate limit tracking and backoff
Use Cases for Crypto
| Use Case | Description |
|---|---|
| Community Management | Auto-engage with mentions and replies |
| Content Distribution | Schedule educational threads |
| Sentiment Monitoring | Track crypto project mentions |
| Alpha Discovery | Monitor whale/influencer accounts |
| Sperax Marketing | Distribute USDs/SPA content |
Links
- GitHub: https://github.com/nirholas/XActions
- X API Docs: https://developer.x.com/en/docs
- Sperax: https://app.sperax.io