skills/engagement-interaction/SKILL.md
Automates X/Twitter engagement actions — like, unlike, reply, bookmark, hide replies, and auto-like by keyword. Also bulk-unlikes all posts. Use when users want to automate likes, send replies, manage bookmarks on tweets, hide replies, or clear their entire likes history.
npx skillsauth add nirholas/xactions engagement-interactionInstall 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.
Browser automation for X/Twitter engagement — liking, replying, bookmarking, hiding replies, and bulk unlike.
| Goal | File | Navigate to |
|------|------|-------------|
| Like/unlike/reply/bookmark tweets | src/engagementManager.js | Tweet URL or timeline |
| Auto-like by keyword | src/engagementManager.js | x.com/home or search page |
| Get engagement analytics for a post | src/engagementManager.js | Tweet URL |
| Hide replies on your posts | src/engagementManager.js | Reply URL |
| Unlike ALL liked posts | src/unlikeAllPosts.js | x.com/USERNAME/likes |
File: src/engagementManager.js
Puppeteer-based module for individual and bulk engagement actions.
| Function | Purpose |
|----------|---------|
| likeTweet(page, tweetUrl) | Like a specific tweet (skips if already liked) |
| unlikeTweet(page, tweetUrl) | Unlike a specific tweet |
| replyToTweet(page, tweetUrl, text, { media? }) | Reply with text and optional media |
| bookmarkTweet(page, tweetUrl) | Bookmark a tweet |
| unbookmarkTweet(page, tweetUrl) | Remove a bookmark |
| hideReply(page, replyUrl) | Hide a reply on your post |
| autoLikeByKeyword(page, { keywords, limit, delay, url }) | Auto-like posts matching keywords |
| getEngagementAnalytics(page, tweetUrl) | Get likes, reposts, replies, impressions |
Scrolls a timeline or search page and likes posts containing any of the specified keywords. Empty keywords array likes all posts.
await autoLikeByKeyword(page, {
keywords: ['AI', 'javascript'],
limit: 20,
delay: 2000,
url: 'https://x.com/home',
});
Navigates to a tweet, types a reply, optionally attaches media, and submits.
File: src/unlikeAllPosts.js
Browser console script that unlikes every post in your Likes tab. Supports keyword filters, dry run mode, rate limit detection, and exports a log.
x.com/YOUR_USERNAME/likesmaxUnlikes: Infinity — cap on unlikesskipKeywords: [] — keep likes containing these wordsonlyKeywords: [] — only unlike posts matching these wordsdryRun: false — preview without unlikingwindow.XActions.pause() / .resume() / .abort() / .status()| Element | Selector |
|---------|----------|
| Like button | [data-testid="like"] |
| Unlike button | [data-testid="unlike"] |
| Reply button | [data-testid="reply"] |
| Reply input | [data-testid="tweetTextarea_0"] |
| Reply submit | [data-testid="tweetButton"] |
| Share button | [data-testid="share"] |
| Bookmark | [data-testid="bookmark"] |
| Remove bookmark | [data-testid="removeBookmark"] |
| Hide reply | [data-testid="hideReply"] |
| Tweet | article[data-testid="tweet"] |
| Tweet text | [data-testid="tweetText"] |
[data-testid="toast"] with 60s cooldowndryRun: true to preview first| Problem | Solution |
|---------|----------|
| Like button not found | Tweet may already be liked — check for unlike button |
| Reply not posting | Verify tweetTextarea_0 selector; tweet may have reply restrictions |
| Auto-like stops early | Rate limit hit — script waits 60s and retries |
| Unlike All stops after ~20 | Rate limit — wait 1 hour and re-run |
tools
Free MCP server providing 68+ tools for AI agents to automate X/Twitter. Scrapes profiles, followers, tweets. Posts, follows, likes, retweets, downloads videos, analyzes sentiment, monitors brands, manages DMs, runs workflows, and more. Uses local Puppeteer -- no API keys or payments required. Compatible with Claude Desktop, Cursor, Windsurf, VS Code. Use when setting up or using AI agent Twitter automation via MCP.
tools
Command-line interface for scraping X/Twitter data, managing MCP server config, and running automation. Scrapes profiles, followers, tweets, search results, and more from terminal. Outputs text, JSON, or CSV. Uses Puppeteer stealth. Use when running Twitter operations from command line or automated pipelines.
development
Enable and integrate x402 crypto payment protocol for XActions API access. Supports multi-chain, multi-token payments for pay-per-use API calls. Use when users want to pay for XActions operations with crypto or integrate x402 into their own agent/app.
tools
Navigate to X Pro (TweetDeck), set up monitoring columns, and manage multi-column view. Use when users want to use X Pro / TweetDeck features or set up a multi-column dashboard.