/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,
$ npx -y skills add nirholas/XActions --skill unfollow-management --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/unfollow-management
Context preview
The summary Claude sees to decide when to auto-load this skill.
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,
SKILL.md
unfollow-management.SKILL.mdname: unfollow-management
description: 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.
license: Apache-2.0
metadata:
author: nichxbt
version: "3.0"
Unfollow Management
Browser console scripts for managing who you follow on X/Twitter. All scripts run in DevTools console.
Script Selection
| Goal | File | Navigate to | |------|------|-------------| | Unfollow ALL accounts | `src/unfollowEveryone.js` | `x.com/USERNAME/following` | | Unfollow only non-followers | `src/unfollowback.js` | `x.com/USERNAME/following` | | Unfollow non-followers + download log | `src/unfollowWDFBLog.js` | `x.com/USERNAME/following` | | Time-based smart unfollow with whitelist | `src/automation/smartUnfollow.js` | `x.com/USERNAME/following` | | Detect who unfollowed you | `src/detectUnfollowers.js` | `x.com/USERNAME/followers` | | Monitor follow/following ratio + plan | `src/followRatioManager.js` | `x.com/USERNAME` | | Remove specific followers from YOUR list | `src/removeFollowers.js` | `x.com/USERNAME/followers` |
Script Details
For detailed algorithms, controls, configurations, and DOM selectors for each script, see [references/script-details.md](references/script-details.md).
Rate Limiting & Safety
- **Default delay:** 1–2 seconds between unfollows (gaussian randomized)
- **Batch delay:** 2–3 seconds between scroll batches
- **Rate limit detection:** Scripts check for `[data-testid="toast"]` warning banners
- **Backoff:** If rate limited, scripts wait 30–60 seconds before retrying
- **Daily limit guidance:** X may restrict after ~400 unfollows/day; spread over multiple sessions
- **Recovery:** If action-restricted, wait 12–24 hours
Strategy Guide
Cleaning a bloated following list
1. Run `src/followRatioManager.js` on your profile to assess current ratio 2. Use `XActions.plan()` to see how many unfollows are needed 3. Run `src/unfollowback.js` to remove non-followers first (safest) 4. If more cleanup needed, use `src/unfollowEveryone.js` with abort when satisfied 5. Re-check ratio with `XActions.track()`
Maintaining a healthy ratio over time
1. Set up periodic runs of `src/detectUnfollowers.js` to track losses 2. Use `src/followRatioManager.js` weekly to monitor trends 3. Run `src/unfollowback.js` monthly to remove non-reciprocal follows 4. Keep a whitelist in `smartUnfollow.js` for accounts you always want to follow
Before a big unfollow session
1. Export your following list first: `scripts/scrapeFollowing.js` 2. Run `src/unfollowWDFBLog.js` (saves log of who was unfollowed) 3. Review the downloaded log for any mistakes 4. Use `src/followRatioManager.js` to verify improvements
Troubleshooting
| Problem | Solution | |---------|----------| | "No unfollow buttons found" | Make sure you're on the Following page, not Followers | | Script stops after ~20 unfollows | X rate limit triggered — wait 1 hour and re-run | | Confirmation dialog doesn't appear | DOM may have changed — check `confirmationSheetConfirm` selector | | Script unfollows mutuals | Use `unfollowback.js` instead of `unfollowEveryone.js` | | "Action restricted" warning | Account is temporarily limited — wait 12-24 hours | | Script misses accounts | Re-run the script — some load below the scroll area |
Related Skills
- **follower-monitoring** — Track follower growth and detect unfollowers
- **blocking-muting-management** — Block/unblock for removing followers
- **growth-automation** — Grow followers to improve ratio organically
- **analytics-insights** — Understand engagement before unfollowing
Read more
name: unfollow-management description: 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. license: Apache-2.0 metadata: author: nichxbt version: "3.0"
Unfollow Management
Browser console scripts for managing who you follow on X/Twitter. All scripts run in DevTools console.
Script Selection
| Goal | File | Navigate to | |------|------|-------------| | Unfollow ALL accounts | `src/unfollowEveryone.js` | `x.com/USERNAME/following` | | Unfollow only non-followers | `src/unfollowback.js` | `x.com/USERNAME/following` | | Unfollow non-followers + download log | `src/unfollowWDFBLog.js` | `x.com/USERNAME/following` | | Time-based smart unfollow with whitelist | `src/automation/smartUnfollow.js` | `x.com/USERNAME/following` | | Detect who unfollowed you | `src/detectUnfollowers.js` | `x.com/USERNAME/followers` | | Monitor follow/following ratio + plan | `src/followRatioManager.js` | `x.com/USERNAME` | | Remove specific followers from YOUR list | `src/removeFollowers.js` | `x.com/USERNAME/followers` |
Script Details
For detailed algorithms, controls, configurations, and DOM selectors for each script, see [references/script-details.md](references/script-details.md).
Rate Limiting & Safety
- **Default delay:** 1–2 seconds between unfollows (gaussian randomized)
- **Batch delay:** 2–3 seconds between scroll batches
- **Rate limit detection:** Scripts check for `[data-testid="toast"]` warning banners
- **Backoff:** If rate limited, scripts wait 30–60 seconds before retrying
- **Daily limit guidance:** X may restrict after ~400 unfollows/day; spread over multiple sessions
- **Recovery:** If action-restricted, wait 12–24 hours
Strategy Guide
Cleaning a bloated following list
1. Run `src/followRatioManager.js` on your profile to assess current ratio 2. Use `XActions.plan()` to see how many unfollows are needed 3. Run `src/unfollowback.js` to remove non-followers first (safest) 4. If more cleanup needed, use `src/unfollowEveryone.js` with abort when satisfied 5. Re-check ratio with `XActions.track()`
Maintaining a healthy ratio over time
1. Set up periodic runs of `src/detectUnfollowers.js` to track losses 2. Use `src/followRatioManager.js` weekly to monitor trends 3. Run `src/unfollowback.js` monthly to remove non-reciprocal follows 4. Keep a whitelist in `smartUnfollow.js` for accounts you always want to follow
Before a big unfollow session
1. Export your following list first: `scripts/scrapeFollowing.js` 2. Run `src/unfollowWDFBLog.js` (saves log of who was unfollowed) 3. Review the downloaded log for any mistakes 4. Use `src/followRatioManager.js` to verify improvements
Troubleshooting
| Problem | Solution | |---------|----------| | "No unfollow buttons found" | Make sure you're on the Following page, not Followers | | Script stops after ~20 unfollows | X rate limit triggered — wait 1 hour and re-run | | Confirmation dialog doesn't appear | DOM may have changed — check `confirmationSheetConfirm` selector | | Script unfollows mutuals | Use `unfollowback.js` instead of `unfollowEveryone.js` | | "Action restricted" warning | Account is temporarily limited — wait 12-24 hours | | Script misses accounts | Re-run the script — some load below the scroll area |
Related Skills
- **follower-monitoring** — Track follower growth and detect unfollowers
- **blocking-muting-management** — Block/unblock for removing followers
- **growth-automation** — Grow followers to improve ratio organically
- **analytics-insights** — Understand engagement before unfollowing
⚡ The Complete X/Twitter Automation Toolkit — Scrapers, MCP server for AI agents (Claude/GPT), CLI, browser scripts. No API fees. Open source. Unfollow people who don't follow back. Monitor real-time analytics. Auto follow, like, comment, scrape, without API. Follow Bot. Like bot. Grow your account automatically.
Repo: nirholas/XActions
Other skills on xactions.
- /a2a-multi-agent
Turn XActions into an A2A-compatible agent that can discover, communicate with, and delegate tasks to other AI agents using Google's Agent-to-Agent protocol.
Open skill - /account-backup
Export and backup your X/Twitter account data — tweets, likes, bookmarks, followers, and following — as downloadable JSON. Also triggers X's official data archive download. Use when users want to backup, export, or archive their X account data.
Open skill - /account-tools
Miscellaneous account utilities — view join date, login history, connected accounts, appeal suspension, QR code sharing, share/embed tweets, upload contacts, and calculate account age. Use when users need account info tools not covered by other skills.
Open skill - /algorithm-cultivation
Trains an X/Twitter account's algorithmic feed to surface niche-relevant content and positions the account as a thought leader. Browser scripts for manual operation, Persona Engine for identity management, and 24/7 Algorithm Builder with LLM-powered engagement via Puppeteer. Use
Open skill - /analytics-insights
Analyze X/Twitter engagement, hashtags, competitors, best posting times, follower demographics, tweet performance, viral detection, content calendar gaps, A/B testing, and engagement leaderboards. Browser console scripts for data-driven X optimization. Use when users want
Open skill - /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.
Open skill

