engagement-interaction
Skill648 starsChanged 9 months agoApache-2.0View on GitHub
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.
In this repository60 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/agents.mdAGENTS.md
- python/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- python/CLAUDE.mdCLAUDE.md
- xspace-agents/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- llms-full.txtllms.txt
- llms.txtllms.txt
- python/llms-full.txtllms.txt
- python/llms.txtllms.txt
- a2a-multi-agentSkill
- account-backupSkill
- account-toolsSkill
- algorithm-cultivationSkill
- analytics-insightsSkill
- articles-longformSkill
- billing-managementSkill
- blocking-muting-managementSkill
- bookmarks-managementSkill
- business-adsSkill
- community-health-monitoringSkill
- community-managementSkill
- community-notesSkill
- competitor-intelligenceSkill
- content-cleanupSkill
- content-postingSkill
- content-repurposingSkill
- creator-monetizationSkill
- crm-managementSkill
- delegate-accessSkill
- direct-messagesSkill
- discovery-exploreSkill
- follower-monitoringSkill
- graph-analysisSkill
- grok-aiSkill
- growth-automationSkill
- lead-generationSkill
- lists-managementSkill
- media-studioSkill
- notifications-managementSkill
- post-editingSkill
- premium-subscriptionsSkill
- profile-managementSkill
- reputation-auditSkill
- saved-searchesSkill
- settings-privacySkill
- spaces-liveSkill
- teams-managementSkill
- timeline-viewingSkill
- topic-managementSkill
- twitter-scrapingSkill
- unfollow-managementSkill
- video-downloadingSkill
- viral-thread-generationSkill
- webhooksSkill
- x402-paymentsSkill
- xactions-cliSkill
- xactions-mcp-serverSkill
- x-pro-managementSkill
The file
Files
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 |
| Like + repost + reply to EVERY post in a feed (profile, search, list, hashtag, home) | scripts/engageProfile.js, xactions engage , or MCP x_engage | the feed itself, or any terminal |
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 |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

