Agent skill
engagement-interaction
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.
Install this agent skill to your Project
npx add-skill https://github.com/nirholas/XActions/tree/main/skills/engagement-interaction
Metadata
Additional technical details for this skill
- author
- nichxbt
- version
- 3.0
SKILL.md
Engagement & Interaction
Browser automation for X/Twitter engagement — liking, replying, bookmarking, hiding replies, and bulk unlike.
Script Selection
| 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 |
Engagement Manager
File: src/engagementManager.js
Puppeteer-based module for individual and bulk engagement actions.
Functions
| 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 |
Auto-Like by Keyword
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',
});
Reply to Tweet
Navigates to a tweet, types a reply, optionally attaches media, and submits.
Unlike All Posts
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.
How to Use
- Navigate to
x.com/YOUR_USERNAME/likes - Open DevTools (F12) → Console
- Paste the script → Enter
Configuration
maxUnlikes: Infinity— cap on unlikesskipKeywords: []— keep likes containing these wordsonlyKeywords: []— only unlike posts matching these wordsdryRun: false— preview without unliking
Controls
window.XActions.pause()/.resume()/.abort()/.status()
DOM Selectors
| 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"] |
Rate Limiting & Safety
- Engagement Manager: 1.5–2s delay between actions, 2s default for auto-like
- Unlike All: 1–2.5s between unlikes (gaussian randomized), 1.8s scroll delay
- Rate limit detection via
[data-testid="toast"]with 60s cooldown - Unlike All is irreversible — use
dryRun: trueto preview first - X may restrict after ~400 like/unlike actions per day
Troubleshooting
| 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 |
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
articles-longform
Compose, preview, publish, and manage long-form Articles on X/Twitter. Premium+ feature. Includes article creation, formatting, media insertion, and performance tracking. Use when users want to write, publish, manage, or analyze X Articles.
x-pro-management
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.
business-ads
Manages X/Twitter business intelligence including brand monitoring, audience insights, competitor analysis, tweet A/B testing, auto-plug replies for promotion, and content performance optimization. Use when users want brand monitoring, audience analysis, competitor comparison, or promotion optimization on X.
unfollow-management
Mass unfollow on X/Twitter via browser console scripts. Unfollows everyone, only non-followers, non-followers with username logging, smart time-based unfollow with whitelists, and follow/following ratio management. Use when cleaning up a following list, removing non-followers, bulk unfollowing accounts, or optimizing your follow ratio.
follower-monitoring
Monitors X/Twitter follower changes using browser console scripts. Detects who unfollowed, tracks new followers with welcome messages, monitors any public account, runs continuous monitoring with alerts, tracks follower growth over time, and analyzes follower demographics. Use when tracking follower changes, detecting unfollowers, or monitoring Twitter accounts.
settings-privacy
Manages X/Twitter account settings and privacy controls including protected tweets, muted words, content filtering, notification preferences, and account configuration. Use when changing privacy settings, managing muted words, or configuring account preferences.
Didn't find tool you were looking for?