nirholas/xactions/engagement-interaction

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Automates X/Twitter engagement actions — like, unlike, reply, bookmark, hide replies, auto-like by keyword, and sweeping an entire profile (like + repost + reply to every post, with template or LLM-written replies). 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

npx vskill@latest install nirholas/xactions/engagement-interaction

SKILL.md

Engagement & Interaction

Browser automation for X/Twitter engagement — liking, replying, bookmarking, hiding replies, and bulk unlike.

Script Selection

GoalFileNavigate to
Like/unlike/reply/bookmark tweetssrc/engagementManager.jsTweet URL or timeline
Auto-like by keywordsrc/engagementManager.jsx.com/home or search page
Get engagement analytics for a postsrc/engagementManager.jsTweet URL
Hide replies on your postssrc/engagementManager.jsReply URL
Unlike ALL liked postssrc/unlikeAllPosts.jsx.com/USERNAME/likes
Like + repost + reply to EVERY post in a feed (profile, search, list, hashtag, home)scripts/engageProfile.js, xactions engage , or MCP x_engagethe feed itself, or any terminal

Engagement Manager

File: src/engagementManager.js

Puppeteer-based module for individual and bulk engagement actions.

Functions
FunctionPurpose
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.

javascript
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
  1. Navigate to x.com/YOUR_USERNAME/likes
  2. Open DevTools (F12) → Console
  3. Paste the script → Enter
Configuration
  • maxUnlikes: Infinity — cap on unlikes
  • skipKeywords: [] — keep likes containing these words
  • onlyKeywords: [] — only unlike posts matching these words
  • dryRun: false — preview without unliking
Controls
  • window.XActions.pause() / .resume() / .abort() / .status()

DOM Selectors

ElementSelector
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"]
Tweetarticle[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: true to preview first
  • X may restrict after ~400 like/unlike actions per day

Troubleshooting

ProblemSolution
Like button not foundTweet may already be liked — check for unlike button
Reply not postingVerify tweetTextarea_0 selector; tweet may have reply restrictions
Auto-like stops earlyRate limit hit — script waits 60s and retries
Unlike All stops after ~20Rate limit — wait 1 hour and re-run

Security

  • Security scanPassed, 93 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
543
Repository forks
103
Repository npm downloads, 7 days
105
7-day trend score
44

Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 28 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nirholas/xactions/engagement-interaction/badge)](https://verified-skill.com/skills/nirholas/xactions/engagement-interaction)

Something wrong with this skill or its page? Tell us.