Guides & Reference
XActions v3.0.42 — Complete Feature Inventory
Generated by deep codebase analysis. For tutorial creation.
Package: xactions on npm | Author: nichxbt (@nichxbt)
1. Architecture Overview
XActions delivers features through 5 delivery modes:
| Mode |
How it Works |
Free? |
| Browser Console Scripts |
IIFE — paste into x.com DevTools |
Yes |
| Automation Framework |
Browser scripts with dependency on core.js |
Yes |
| Puppeteer Managers |
ES module exports, run via Node.js |
Yes |
| MCP Server |
Model Context Protocol for AI agents (Claude, GPT) |
Local=Free, Remote=Paid (x402) |
| CLI |
Commander.js terminal interface |
Yes |
Key Dependencies: puppeteer + puppeteer-extra-plugin-stealth, @modelcontextprotocol/sdk, commander, chalk, ora, inquirer, express, prisma, bull, redis, socket.io, stripe
Package Exports:
"." → src/index.js
"./scrapers" → src/scrapers/index.js
"./mcp" → src/mcp/server.js
"./cli" → src/cli/index.js
2. Browser Console Scripts
How to use: Navigate to the listed x.com page → Open DevTools (F12) → Console tab → Paste entire script → Enter
2.1 Unfollow Management
| # |
File |
What It Does |
Page Required |
Key Config |
| 1 |
src/unfollowEveryone.js |
Unfollow ALL accounts you follow |
x.com/USERNAME/following |
Retry limit: 3, auto-scroll |
| 2 |
src/unfollowback.js |
Unfollow users who DON'T follow you back |
x.com/USERNAME/following |
Filters via userFollowIndicator selector |
| 3 |
src/unfollowWDFBLog.js |
Unfollow non-followers WITH logging + downloadable .txt report |
x.com/USERNAME/following |
Creates downloadable .txt file |
2.2 Content Cleanup
| # |
File |
What It Does |
Page Required |
Key Config |
| 4 |
src/unlikeAllPosts.js |
Unlike all your liked posts |
x.com/USERNAME/likes |
maxUnlikes, minDelay, maxDelay |
| 5 |
src/clearAllReposts.js |
Remove all your retweets |
x.com/USERNAME |
maxUnretweets, minDelay, maxDelay |
| 6 |
src/clearAllBookmarks.js |
Clear all bookmarks (tries bulk clear first, then one-by-one) |
x.com/i/bookmarks |
None |
2.3 Blocking & Muting
| # |
File |
What It Does |
Page Required |
Key Config |
| 7 |
src/massBlock.js |
Block a list of usernames |
Any x.com page |
usersToBlock[], dryRun |
| 8 |
src/massUnblock.js |
Unblock ALL blocked users |
x.com/settings/blocked/all |
Auto-scroll + confirm |
| 9 |
src/massUnmute.js |
Unmute ALL muted users |
x.com/settings/muted/all |
Auto-scroll |
| 10 |
src/muteByKeywords.js |
Mute users whose posts contain specific keywords |
Any timeline/search |
keywords[], caseSensitive, maxMutes |
| 11 |
src/manageMutedWords.js |
Bulk-add muted words/phrases to X settings |
x.com/settings/muted_keywords |
wordsToMute[], duration (forever/24h/7d/30d), muteFrom, dryRun |
| 12 |
src/blockBots.js |
Detect and block bot accounts using heuristics |
x.com/USERNAME/followers |
dryRun, maxBlocks; heuristics: default avatar, high-digit username, no bio, 0 followers; exports JSON report |
| 13 |
src/reportSpam.js |
Report accounts for spam/abuse |
Any x.com page |
usersToReport[], reason (spam/abuse/fake), dryRun, blockAfterReport |
2.4 Follower Monitoring
| # |
File |
What It Does |
Page Required |
Key Config |
| 14 |
src/detectUnfollowers.js |
Detect who unfollowed you (snapshot comparison via localStorage) |
x.com/USERNAME/followers |
Persists snapshots between sessions |
| 15 |
src/newFollowersAlert.js |
Track new followers over time, welcome message templates |
x.com/USERNAME/followers |
localStorage snapshots, shows gained/lost |
| 16 |
src/continuousMonitor.js |
Auto-refresh monitoring with browser notifications + sound |
x.com/USERNAME/followers or /following |
CHECK_INTERVAL_MINUTES (default 5), browser notification API |
| 17 |
src/monitorAccount.js |
Monitor ANY public account's follower/following changes |
x.com/TARGET/followers or /following |
localStorage snapshots, downloads change reports |
| 18 |
src/auditFollowers.js |
Audit follower quality — categorize as legitimate/suspicious/fake |
x.com/USERNAME/followers |
Heuristics: avatar, bio, username patterns; exports JSON audit report |
| 19 |
src/removeFollowers.js |
Remove specific followers via soft-block (block+unblock) |
x.com/USERNAME/followers |
usersToRemove[] or removeAll, dryRun |
2.5 Analytics
| # |
File |
What It Does |
Page Required |
Key Config |
| 20 |
src/engagementAnalytics.js |
Analyze engagement metrics per post (likes, RT, replies, views) |
x.com/USERNAME |
Calculates averages, best posting times; exports JSON |
| 21 |
src/bestTimeToPost.js |
Find optimal posting times using hour×day engagement matrix |
x.com/USERNAME |
Recommends best day+hour combos; exports JSON |
| 22 |
src/hashtagAnalytics.js |
Analyze hashtag performance (posts, users, peak hours) |
x.com/search?q=%23HASHTAG |
MIN_POSTS, tracks unique users, top contributors; exports JSON |
| 23 |
src/competitorAnalysis.js |
Compare multiple accounts' metrics side by side |
Any x.com page |
accounts[] — navigates to each, scrapes followers/engagement; exports JSON |
2.6 Content Creation
| # |
File |
What It Does |
Page Required |
Key Config |
| 24 |
src/postThread.js |
Post multi-tweet threads |
x.com (home) |
thread[] of strings, dryRun; validates 280 char limit |
| 25 |
src/schedulePosts.js |
Schedule future posts using X's native scheduler |
x.com (home) |
posts[] with text + scheduledFor datetime (Premium feature) |
| 26 |
src/createPoll.js |
Create poll tweets |
x.com (home) |
question, options (2–4, max 25 chars), durationDays/Hours/Minutes, dryRun |
| 27 |
src/autoRepost.js |
Auto-retweet by keyword/user filters |
x.com/home or /search |
keywords[], fromUsers[], maxReposts, minLikes threshold, skipReplies |
2.7 Direct Messages
| # |
File |
What It Does |
Page Required |
Key Config |
| 28 |
src/sendDirectMessage.js |
Send personalized DMs with template variables |
x.com/messages |
targetUsers[], messageTemplate with {username} placeholder, skipIfAlreadyMessaged, dryRun; localStorage history |
2.8 Communities
| # |
File |
What It Does |
Page Required |
Key Config |
| 29 |
src/joinCommunities.js |
Join communities by keyword filter |
x.com/i/communities/suggested |
keywords[], maxJoins, dryRun |
| 30 |
src/leaveAllCommunities.js |
Leave ALL joined communities (recursive navigation) |
x.com/USERNAME/communities |
sessionStorage tracking of left communities |
2.9 Lists & Profile
| # |
File |
What It Does |
Page Required |
Key Config |
| 31 |
src/listManager.js |
Create/manage X Lists — create, add users, export members |
Any x.com or list page |
createList(name, description, private), addUsers, exportMembers |
| 32 |
src/updateProfile.js |
Update bio, name, location, website |
Profile page |
displayName (50 chars), bio (160 chars), location, website, autoSave |
2.10 Data Export & Backup
| # |
File |
What It Does |
Page Required |
Key Config |
| 33 |
src/backupAccount.js |
Export full account data as JSON (profile, tweets, likes, bookmarks, following, followers) |
x.com/USERNAME |
Navigates each section, scrolls+collects |
| 34 |
src/downloadAccountData.js |
Trigger X's official data archive download |
x.com/settings/download_your_data |
Clicks Request/Download button, monitors status |
| 35 |
src/qrCodeSharing.js |
Generate QR code for any profile |
Any x.com or profile |
Uses qrserver.com API, shows overlay, auto-downloads PNG |
| 36 |
src/bookmarkOrganizer.js |
Categorize bookmarks by keyword categories |
x.com/i/bookmarks |
Auto-categorizes (Tech, News, Crypto, etc.); exports JSON/CSV |
| 37 |
src/scrapeSpaces.js |
Find live/scheduled X Spaces from search/timeline |
Search or timeline |
Extracts spaceId, title, host, status; reports live/scheduled/ended |
3. Automation Framework
How to use: Paste core.js into DevTools first (it defines selectors, utilities, rate limiting). Then paste any automation script.
3.1 Foundation
| # |
File |
What It Does |
Key Exports |
| 1 |
src/automation/core.js |
Foundation — CONFIG, SELECTORS, utilities, storage, DOM helpers, rate limiting, action queue |
CONFIG, SELECTORS, sleep(), randomDelay(), log(), scrollTo(), waitForElement(), clickElement(), typeText(), extractUsername(), extractTweetInfo(), rate limit system, actionQueue |
| 2 |
src/automation/actions.js (2116 lines) |
Complete X/Twitter actions library |
Exposes window.XActions with: tweet (post, reply, quote, like, unlike, retweet, unretweet, bookmark, unbookmark, delete, pin, hide reply), user (follow, unfollow, block, unblock, mute, unmute), dm (send, getConversations), search, navigation |
3.2 Auto-Engagement
| # |
File |
What It Does |
Page Required |
Key Config |
| 3 |
src/automation/autoLiker.js |
Timeline auto-liker with keyword/user filtering |
Home feed or profile |
LIKE_ALL, KEYWORDS[], FROM_USERS[], MAX_LIKES, ALSO_RETWEET, SKIP_REPLIES, SKIP_ADS, MIN_LIKES_ON_POST; persists liked IDs in localStorage |
| 4 |
src/automation/autoCommenter.js (288 lines) |
Auto-comment on new posts with random message selection |
x.com/USERNAME |
COMMENTS[], CHECK_INTERVAL_SECONDS, ONLY_ORIGINAL_TWEETS, MIN/MAX_POST_AGE |
3.3 Follow Automation
| # |
File |
What It Does |
Page Required |
Key Config |
| 5 |
src/automation/followEngagers.js (360 lines) |
Follow users who engage with specific posts |
Tweet engagement page |
MODE (likers/retweeters/quoters/all), TARGET_POSTS[], FILTERS (min/max followers, skip protected/verified), INTERACT_AFTER_FOLLOW |
| 6 |
src/automation/followTargetUsers.js (374 lines) |
Follow followers/following of target accounts |
x.com/TARGET/followers or /following |
TARGET_ACCOUNTS[], LIST_TYPE, FILTERS (followers range, ratio, bio keywords), INTERACT_AFTER_FOLLOW with likes |
| 7 |
src/automation/keywordFollow.js (255 lines) |
Search keywords and follow matching users |
Search results |
KEYWORDS[], filters (MIN/MAX_FOLLOWERS, MUST_HAVE_BIO, BIO_KEYWORDS); localStorage tracking for smart unfollow |
| 8 |
src/automation/smartUnfollow.js (269 lines) |
Time-based unfollow for non-followers after grace period |
x.com/USERNAME/following |
DAYS_TO_WAIT (default 3), WHITELIST[], DRY_RUN, ONLY_TRACKED; reads keywordFollow tracking data |
3.4 Growth & Business
| # |
File |
What It Does |
Page Required |
Key Config |
| 9 |
src/automation/growthSuite.js (368 lines) |
All-in-one growth: keyword following + auto-liking + smart unfollowing |
Various |
STRATEGY config with targeting (keywords, target accounts), actions toggle, limits, timing, filters |
| 9b |
src/automation/algorithmTrainer.js (570+ lines) |
24/7 algorithm training engine — trains X algorithm for your niches via autonomous browsing, searching, engaging |
Any x.com |
NICHES.topics[] (search terms + comments per niche), PERSONA.INTENSITY (chill/normal/active), cycle/daily limits, 8 phases (search top/latest, people follow, home feed, influencer visits, own profile, explore, idle dwell), stopTrainer() / trainerStatus() / trainerReset() |
| 10 |
src/automation/customerService.js (511 lines) |
Customer service bot — monitors mentions/DMs/replies, auto-responds |
Notifications/DMs |
BRAND_KEYWORDS[], response template categories (greeting, issue, feedback, faq, escalation), BUSINESS_HOURS with timezone |
| 11 |
src/automation/multiAccount.js (456 lines) |
Multi-account manager with rotation |
Any x.com |
addAccount(), removeAccount(), switchAccount(), getNextAccount() rotation; localStorage storage, per-account stats |
3.5 Safety & Utilities
| # |
File |
What It Does |
Page Required |
Key Config |
| 12 |
src/automation/protectActiveUsers.js (375 lines) |
Build protected list of engaged users to prevent unfollowing them |
x.com/USERNAME |
POSTS_TO_SCAN, ENGAGEMENT_TYPES (likers, repliers, retweeters, quoters), LOOKBACK_DAYS, MIN_ENGAGEMENTS; saves to localStorage |
| 13 |
src/automation/quotaSupervisor.js (361 lines) |
Rate limiting system for all automations |
Any |
QUOTAS config: hourly/daily limits for likes, follows, unfollows, comments, DMs; sleep behavior; stochastic variance (15%) |
| 14 |
src/automation/sessionLogger.js (442 lines) |
Action logging and analytics — tracks all automation actions |
Any |
Per-session stats, exportable reports (JSON/CSV), LOG_RETENTION_DAYS |
| 15 |
src/automation/linkScraper.js (291 lines) |
Extract all links shared by a user |
x.com/USERNAME |
INCLUDE_TWITTER_LINKS, INCLUDE_MEDIA, DOMAINS_ONLY[], EXCLUDE_DOMAINS[] |
4. Scrapers
How to use (Puppeteer library): import { createBrowser, scrapeProfile } from 'xactions/scrapers'
How to use (browser scripts): Paste into DevTools on the listed page
4.1 Puppeteer Scraper Library
| # |
File |
Exported Functions |
Parameters |
| 1 |
src/scrapers/index.js (919 lines) |
createBrowser(), createPage(browser), loginWithCookie(page, cookie), scrapeProfile(page, username), scrapeFollowers(page, username, options), scrapeFollowing(page, username, options), scrapeTweets(page, username, options), scrapeThread(page, tweetUrl), scrapeMedia(page, username, options), scrapeHashtag(page, hashtag, options), searchTweets(page, query, options), exportToCSV(data, filename), exportToJSON(data, filename) |
Common options: limit, onProgress, includeReplies, filter (latest/top/people/photos/videos) |
4.2 Browser Console Scrapers
| # |
File |
What It Does |
Page Required |
Key Config |
| 2 |
src/scrapers/bookmarkExporter.js (194 lines) |
Export bookmarks to JSON/CSV |
x.com/i/bookmarks |
MAX_BOOKMARKS, FORMAT (json/csv/both); extracts text, engagement, images, links |
| 3 |
src/scrapers/threadUnroller.js (171 lines) |
Save a thread as text, markdown, or JSON |
Any tweet in a thread |
FORMAT (text/markdown/json), INCLUDE_MEDIA, INCLUDE_STATS; filters to thread author |
| 4 |
src/scrapers/videoDownloader.js (361 lines) |
Download videos from tweets |
Tweet with video |
Methods: React state/props extraction, page data scanning for video.twimg.com URLs; shows quality options, auto-downloads highest |
| 5 |
src/scrapers/viralTweets.js (175 lines) |
Find top-performing tweets by engagement thresholds |
Search or profile |
MIN_LIKES (100), MIN_RETWEETS (10), SORT_BY (likes/retweets/replies/views); exports results |
5. Puppeteer Manager Modules
How to use: import { functionName } from 'xactions' — these are ES module exports from src/index.js. All take a Puppeteer page as first argument.
5.1 Profile & Settings
| # |
Module |
Exported Functions |
| 1 |
src/profileManager.js (269 lines) |
getProfile(page, username), filterPosts(page, username, sort, options), updateProfile(page, updates), uploadAvatar(page, imagePath), uploadHeader(page, imagePath) |
| 2 |
src/settingsManager.js (261 lines) |
getSettings(page), toggleProtectedAccount(page, protect), getBlockedAccounts(page, options), getMutedAccounts(page, options), requestDataDownload(page), setContentPreferences(page, preferences) |
| 3 |
src/premiumManager.js (231 lines) |
checkPremiumStatus(page, username), getTierFeatures(tier), compareTiers(tier1, tier2), checkRevenueEligibility(page, username) |
5.2 Content Creation & Management
| # |
Module |
Exported Functions |
| 4 |
src/postComposer.js (375 lines) |
postTweet(page, text, options), postThread(page, tweets), createPoll(page, question, choices, options), schedulePost(page, text, scheduledTime), quotePost(page, postUrl, commentary), repost(page, postUrl), deletePost(page, postUrl) |
| 5 |
src/articlePublisher.js (175 lines) |
publishArticle(page, article), saveDraft(page, article), getArticles(page, username), getArticleAnalytics(page, articleUrl) |
| 6 |
src/pollCreator.js (164 lines) |
createPoll(page, question, choices, options), getPollResults(page, tweetUrl) |
5.3 Engagement & Interaction
| # |
Module |
Exported Functions |
| 7 |
src/engagementManager.js (272 lines) |
likeTweet(page, tweetUrl), unlikeTweet(page, tweetUrl), replyToTweet(page, tweetUrl, replyText, options), bookmarkTweet(page, tweetUrl), unbookmarkTweet(page, tweetUrl), hideReply(page, replyUrl), autoLikeByKeyword(page, options), getEngagementAnalytics(page, tweetUrl) |
| 8 |
src/dmManager.js (200 lines) |
sendDM(page, username, message), getConversations(page, options), exportConversation(page, conversationUrl, options), getMessageRequests(page), updateDMSettings(page, settings) |
| 9 |
src/notificationManager.js (171 lines) |
getNotifications(page, options), muteUser(page, username), unmuteUser(page, username), muteWord(page, word, options), getNotificationSettings(page) |
5.4 Discovery & Search
| # |
Module |
Exported Functions |
| 10 |
src/discoveryExplore.js (213 lines) |
searchTweets(page, query, options), getTrends(page, options), getExploreFeed(page, options), followTopic(page, topicName), advancedSearch(page, filters) |
| 11 |
src/bookmarkManager.js (146 lines) |
getBookmarks(page, options), createFolder(page, folderName), clearAllBookmarks(page) |
5.5 Spaces & Communities
| # |
Module |
Exported Functions |
| 12 |
src/spacesManager.js (175 lines) |
getLiveSpaces(page, options), getScheduledSpaces(page, username), scrapeSpace(page, spaceUrl), createEvent(page, event) |
5.6 Analytics & Business
| # |
Module |
Exported Functions |
| 13 |
src/creatorStudio.js (182 lines) |
getAccountAnalytics(page, options), getPostAnalytics(page, postUrl), getRevenue(page), getSubscribers(page, options), getCreatorDashboard(page) |
| 14 |
src/businessTools.js (194 lines) |
monitorBrandMentions(page, brandName, options), getAudienceInsights(page, username, options), analyzeCompetitors(page, competitors) |
5.7 AI Integration
| # |
Module |
Exported Functions |
| 15 |
src/grokIntegration.js (152 lines) |
queryGrok(page, query, options), generateImage(page, prompt), summarize(page, topic), analyzePost(page, postText) |
6. MCP Server
How to use: npx xactions mcp or configure in Claude Desktop / Cursor settings
Config: XACTIONS_MODE (local|remote), XACTIONS_SESSION_COOKIE, X402_PRIVATE_KEY, X402_NETWORK
6.1 Server Architecture
| File |
Role |
Lines |
src/mcp/server.js |
MCP server — StdioServerTransport, tool definitions, routing |
884 |
src/mcp/local-tools.js |
Puppeteer-based local implementations |
527 |
src/mcp/x402-client.js |
x402 payment client for remote API (USDC on Base/Ethereum/Arbitrum) |
558 |
6.2 Complete MCP Tool List (37 tools)
| # |
Tool Name |
Description |
Required Args |
| 1 |
x_login |
Authenticate with session cookie |
cookie |
| 2 |
x_get_profile |
Get profile data for any user |
username |
| 3 |
x_get_followers |
Get followers list |
username |
| 4 |
x_get_following |
Get following list |
username |
| 5 |
x_get_non_followers |
Find accounts that don't follow back |
username |
| 6 |
x_get_tweets |
Get user's tweets |
username |
| 7 |
x_search_tweets |
Search tweets by query |
query |
| 8 |
x_follow |
Follow a user |
username |
| 9 |
x_unfollow |
Unfollow a user |
username |
| 10 |
x_unfollow_non_followers |
Mass unfollow non-followers |
username |
| 11 |
x_detect_unfollowers |
Snapshot followers for unfollower detection |
username |
| 12 |
x_post_tweet |
Post a new tweet |
text |
| 13 |
x_like |
Like a tweet |
url |
| 14 |
x_retweet |
Retweet a tweet |
url |
| 15 |
x_download_video |
Get video download URLs from a tweet |
tweetUrl |
| 16 |
x_update_profile |
Update profile fields (name, bio, location, website) |
— |
| 17 |
x_post_thread |
Post a multi-tweet thread |
tweets[] |
| 18 |
x_create_poll |
Create a poll tweet |
question, options[] |
| 19 |
x_schedule_post |
Schedule a tweet (Premium) |
text, scheduledAt |
| 20 |
x_delete_tweet |
Delete a tweet |
url |
| 21 |
x_reply |
Reply to a tweet |
url, text |
| 22 |
x_bookmark |
Bookmark a tweet |
url |
| 23 |
x_get_bookmarks |
Export bookmarks |
— |
| 24 |
x_clear_bookmarks |
Clear all bookmarks |
— |
| 25 |
x_auto_like |
Auto-like by keywords in feed |
— |
| 26 |
x_get_trends |
Get trending topics |
— |
| 27 |
x_get_explore |
Scrape Explore feed |
— |
| 28 |
x_get_notifications |
Get notifications with type classification |
— |
| 29 |
x_mute_user |
Mute a user |
username |
| 30 |
x_unmute_user |
Unmute a user |
username |
| 31 |
x_send_dm |
Send a direct message |
username, message |
| 32 |
x_get_conversations |
Get DM conversation list |
— |
| 33 |
x_export_dms |
Export DM messages to JSON |
— |
| 34 |
x_grok_query |
Query Grok AI (Premium) |
query |
| 35 |
x_grok_summarize |
Summarize topic via Grok |
topic |
| 36 |
x_get_lists |
Get your X Lists |
— |
| 37 |
x_get_list_members |
Get list members |
listUrl |
| 38 |
x_get_spaces |
Get live/scheduled Spaces |
— |
| 39 |
x_scrape_space |
Scrape Space metadata & speakers |
url |
| 40 |
x_get_analytics |
Get account engagement analytics |
— |
| 41 |
x_get_post_analytics |
Get analytics for a specific post |
url |
| 42 |
x_get_settings |
Get account settings snapshot |
— |
| 43 |
x_toggle_protected |
Toggle protected/private mode |
enabled |
| 44 |
x_get_blocked |
Get blocked accounts list |
— |
| 45 |
x_brand_monitor |
Monitor brand mentions with sentiment |
brand |
| 46 |
x_competitor_analysis |
Compare competitor accounts |
handles[] |
| 47 |
x_check_premium |
Check premium status |
— |
| 48 |
x_publish_article |
Publish long-form article (Premium+) |
title, body |
| 49 |
x_creator_analytics |
Creator dashboard analytics |
— |
7. CLI
How to use: npx xactions <command> or npm run cli -- <command>
Auth: Stored in ~/.xactions/config.json
| # |
Command |
What It Does |
Options |
| 1 |
login |
Authenticate (interactive cookie prompt) |
— |
| 2 |
logout |
Remove saved credentials |
— |
| 3 |
profile <username> |
Display profile information |
--json |
| 4 |
followers <username> |
List followers |
--limit, --output (json/csv), --json |
| 5 |
following <username> |
List following |
--limit, --output (json/csv), --json |
| 6 |
non-followers <username> |
Find who doesn't follow back |
--limit, --json |
| 7 |
tweets <username> |
Get user's tweets |
--limit, --output, --replies, --json |
| 8 |
search <query> |
Search tweets |
--limit, --filter (latest/top/people/photos/videos), --output, --json |
| 9 |
hashtag <tag> |
Scrape hashtag tweets |
--limit, --output, --json |
| 10 |
thread <url> |
Unroll and save a thread |
--output, --json |
| 11 |
media <username> |
Scrape user's media |
--limit, --output, --json |
| 12 |
info |
Show configuration & auth status |
— |
8. DevTools Console Scripts (scripts/twitter/)
67 standalone browser console scripts. These are ready-to-paste versions, many overlapping with src/ features but with additional unique scripts.
8.1 Scripts UNIQUE to scripts/twitter/ (not in src/)
| # |
File |
What It Does |
Page Required |
| 1 |
blacklist.js (293 lines) |
Manage a blacklist — users to never follow/like/RT |
Any x.com page |
| 2 |
whitelist.js (270 lines) |
Manage a whitelist — protected users to never unfollow/block |
Any x.com page |
| 3 |
filter-manager.js (394 lines) |
Configure filters (follower count, age, language, bio keywords, verified, default pic, tweet count) |
Any x.com page |
| 4 |
rate-limiter.js (388 lines) |
Rate limiting utility — tracks actions per hour/day, enforces quotas, cooldowns |
Any (paste first) |
| 5 |
block-by-keywords.js (203 lines) |
Block users with specific keywords in their bio |
Followers/following page |
| 6 |
block-by-ratio.js (235 lines) |
Block accounts by follower/following ratio (spam detection) |
x.com/USERNAME/followers |
| 7 |
comment-by-hashtag.js (289 lines) |
Search hashtags and auto-comment with custom messages |
x.com (logged in) |
| 8 |
comment-by-location.js (348 lines) |
Search by location and auto-comment on matching tweets |
x.com (logged in) |
| 9 |
interact-by-hashtag.js (315 lines) |
Like + RT + follow users posting with specific hashtags |
Any x.com page |
| 10 |
interact-by-place.js (267 lines) |
Like + follow users from specific locations (great for local business) |
Any x.com page |
| 11 |
interact-by-users.js (321 lines) |
Full interaction suite for target users — like, reply, RT, follow |
Any x.com page |
| 12 |
interact-with-likers.js (258 lines) |
Follow users who liked specific tweets (competitor audience building) |
Tweet likes page |
| 13 |
like-by-feed.js (277 lines) |
Auto-like tweets from home timeline |
x.com/home |
| 14 |
like-by-hashtag.js (265 lines) |
Auto-like tweets containing specific hashtags |
Search page |
| 15 |
like-by-location.js (296 lines) |
Auto-like tweets from specific geographic locations (uses near: operator) |
x.com |
| 16 |
like-by-user.js (328 lines) |
Auto-like all tweets from a specific user's profile |
x.com/USERNAME |
| 17 |
like-user-replies.js (357 lines) |
Auto-like replies/comments on a specific tweet |
Tweet page (x.com/user/status/xxx) |
| 18 |
find-fake-followers.js (359 lines) |
Advanced fake/bot follower detection with scoring system |
x.com/USERNAME/followers |
| 19 |
followers-growth-tracker.js (278 lines) |
Track follower growth over time with historical data in localStorage |
Any profile page |
| 20 |
profile-stats.js (308 lines) |
Comprehensive profile statistics dashboard |
Any profile page |
| 21 |
unlike-old.js (246 lines) |
Unlike tweets older than N days |
x.com/USERNAME/likes |
| 22 |
leave-community.js (123 lines) |
Leave a specific community by ID |
Community page |
| 23 |
update-banner.js (161 lines) |
Helper for updating profile banner image |
x.com/USERNAME |
| 24 |
update-bio.js (147 lines) |
Update profile bio text |
x.com/settings/profile |
| 25 |
update-profile-picture.js (162 lines) |
Helper for updating profile picture |
x.com/USERNAME |
| 26 |
scrape-profile-posts.js (872 lines) |
Advanced tweet scraper with filtering, analytics, multi-format export |
Any profile page |
8.2 Scripts that MIRROR src/ features (shared as standalone versions)
unfollow-everyone.js, unfollow-non-followers.js, unfollow-with-log.js, smart-unfollow.js, detect-unfollowers.js, monitor-account.js, continuous-monitor.js, new-followers-alert.js, auto-liker.js, auto-commenter.js, follow-engagers.js, follow-target-users.js, keyword-follow.js, protect-active-users.js, growth-suite.js, multi-account.js, audit-followers.js, block-bots.js, mass-block.js, mass-unblock.js, mass-unmute.js, mute-by-keywords.js, report-spam.js, clear-all-bookmarks.js, clear-all-likes.js, clear-all-retweets.js, leave-all-communities.js, join-communities.js, send-direct-message.js, backup-account.js, best-time-to-post.js, competitor-analysis.js, engagement-analytics.js, hashtag-analytics.js, bookmark-exporter.js, thread-unroller.js, video-downloader.js, viral-tweets-scraper.js, link-scraper.js
9. Skills Reference (skills/)
27 skill categories providing documentation and prompt guidance for each feature domain.
| # |
Skill Category |
Description |
| 1 |
analytics-insights/ |
Engagement analytics, best time to post, hashtag analytics |
| 2 |
articles-longform/ |
Publishing long-form articles (Premium+) |
| 3 |
blocking-muting-management/ |
Block, unblock, mute, unmute, mute words |
| 4 |
bookmarks-management/ |
Bookmarks, folders, export, organize |
| 5 |
business-ads/ |
Brand monitoring, competitor analysis, audience insights |
| 6 |
community-management/ |
Join/leave communities |
| 7 |
content-cleanup/ |
Unlike all, clear reposts, clear bookmarks |
| 8 |
content-posting/ |
Post tweets, threads, polls, schedule |
| 9 |
creator-monetization/ |
Revenue, subscribers, creator dashboard |
| 10 |
direct-messages/ |
Send DMs, conversations, export |
| 11 |
discovery-explore/ |
Search, trends, explore feed, topics |
| 12 |
engagement-interaction/ |
Like, reply, retweet, bookmark tweets |
| 13 |
follower-monitoring/ |
Detect unfollowers, new followers, continuous monitoring |
| 14 |
grok-ai/ |
Query Grok, generate images, summarize, analyze posts |
| 15 |
growth-automation/ |
Growth suite, keyword follow, follow engagers |
| 16 |
lists-management/ |
Create/manage lists, export members |
| 17 |
messaging-engagement/ |
DM management, auto-responses |
| 18 |
notifications-management/ |
Get notifications, filter, mute |
| 19 |
posting-content/ |
Tweet composition, threads, polls, scheduling |
| 20 |
premium-subscriptions/ |
Check premium status, tier features, revenue eligibility |
| 21 |
profile-management/ |
Get/update profile, avatar, header |
| 22 |
settings-privacy/ |
Account settings, protected mode, blocked/muted lists |
| 23 |
spaces-live/ |
Live spaces, scheduled spaces, scrape space data |
| 24 |
twitter-scraping/ |
Scrape profiles, followers, tweets, search, media |
| 25 |
unfollow-management/ |
Unfollow everyone, non-followers, smart unfollow |
| 26 |
xactions-cli/ |
CLI usage documentation |
| 27 |
xactions-mcp-server/ |
MCP server setup and usage |
10. API Backend (api/)
Express.js SaaS backend for the web dashboard.
| Directory |
Contents |
api/server.js |
Express entry point |
api/routes/ |
Route handlers |
api/services/ |
Business logic |
api/middleware/ |
Auth, rate limiting |
api/config/ |
Configuration |
api/realtime/ |
Socket.io for real-time features |
api/utils/ |
Utility functions |
prisma/schema.prisma |
Database schema |
prisma/seed.js |
Database seeding |
Quick Stats
| Category |
Count |
| Browser Console Scripts (src/) |
37 |
| Automation Framework Scripts (src/automation/) |
15 |
| Scraper Modules (src/scrapers/) |
5 |
| Puppeteer Manager Modules (src/*.js) |
15 |
| MCP Server Tools |
49 |
| CLI Commands |
12 |
| DevTools Scripts (scripts/twitter/) |
67 |
| Skills Categories |
27 |
| Total unique feature files |
~100+ |
X/Twitter DOM Selectors Reference
Used across all scripts — current as of January 2026:
| Element |
Selector |
| Unfollow button |
[data-testid$="-unfollow"] |
| Confirmation button |
[data-testid="confirmationSheetConfirm"] |
| Back button |
[data-testid="app-bar-back"] |
| Follow indicator |
[data-testid="userFollowIndicator"] |
| Tweet |
article[data-testid="tweet"] |
| Tweet text |
[data-testid="tweetText"] |
| Like button |
[data-testid="like"] |
| Unlike button |
[data-testid="unlike"] |
| Retweet button |
[data-testid="retweet"] |
| Reply button |
[data-testid="reply"] |
| User cell |
[data-testid="UserCell"] |
| User description |
[data-testid="UserDescription"] |
| Video player |
[data-testid="videoPlayer"] |
| Tweet photo |
[data-testid="tweetPhoto"] |
| Quote tweet |
[data-testid="quoteTweet"] |
| Social context (RT) |
[data-testid="socialContext"] |
| Joined (community) |
button[aria-label^="Joined"] |
| Community links |
a[href^="/i/communities/"] |