A Chrome extension for organic audience growth on X (Twitter). Automatically follows and likes accounts that are active in your niche — found via hashtag search, recent tweets, and comment threads.
The extension runs fully inside your browser. No external servers, no API keys, no data leaves your machine. All state is stored in Chrome's built-in local storage.
One entry point — hashtags. You provide a list of hashtags relevant to your niche. The extension:
- Searches X for the most recent tweets tagged with those hashtags
- Collects tweet authors directly from the search feed
- Identifies "hot" tweets (replies ≥ 5) and dives into their comment threads to find engaged users
- Follows and/or likes those users — people who were active minutes ago and are likely still online
This targets people at peak engagement time, which significantly improves follow-back rates compared to scraping static follower lists.
- Real pointer events — full
PointerEvent+MouseEventsequence (pointerover → pointermove → pointerdown → pointerup → click) with realistic coordinates fromgetBoundingClientRect. Clicks land slightly off-center, as a real cursor would. - Variable scroll speed — sine-based ease-in/ease-out curve with per-step jitter and random reading pauses, simulating natural eye movement.
- Randomised action counts — follows and likes per session are picked from a configurable range (e.g. 8–14), never the same number twice.
- Random delays between actions — configurable min/max (default 45–90 sec). Each delay is independently randomised.
- Post-action settle pause — 1–2 sec pause after every follow or like before navigating away, mirroring natural user behaviour.
- Warmup scrolling — before taking any action, the extension scrolls the home feed and occasionally likes random posts, building a realistic activity pattern for the session.
- Random home feed detours — 30% chance to visit the home feed and scroll between actions.
- CAPTCHA / rate-limit detection — monitors URL patterns, page text, Arkose/FunCaptcha iframes, and Twitter's challenge page elements. On detection: session is paused, you are notified in the log, and you have up to 10 minutes to resolve it manually. If unresolved, the session aborts cleanly.
- Tab visibility guard — if you switch to another window or tab, execution pauses immediately and resumes automatically when the tab becomes visible again. Prevents timing anomalies from background throttling.
- Duplicate follow prevention — every followed username is stored with a timestamp. Already-followed accounts are skipped across sessions.
- Session interval randomisation — next session is scheduled 30–55 min after the previous one (configurable), never on a fixed clock.
- Detects up to 5 logged-in X accounts from the page DOM (no credentials stored).
- Click account chips to select one, several, or all.
- "All accounts" mode — round-robin rotation across selected accounts, one session per account per cycle.
- Live log — timestamped, colour-coded entries (info / action / success / warn / error) visible in the popup while the session runs.
- Session history — each completed session is saved: account, timestamp, follow/like counts. Expand any session to see every user processed, the source they were found from (
author:#web3,commenter:#defi), and the action result. - Up to 500 live log entries and 100 session records stored.
| Setting | Default | Description |
|---|---|---|
| Hashtags | crypto, web3, defi, nft, airdrop | Hashtags used as the search entry point |
| Follows per session | 8–14 | Random range picked each session |
| Likes per session | 8–14 | Random range picked each session |
| Action mode | Follow and Like | Follow only / Like only / Alternate |
| Min delay between actions | 45 sec | Lower bound for inter-action pause |
| Max delay between actions | 90 sec | Upper bound for inter-action pause |
| Session interval | 30–55 min | Random gap between sessions |
| Dive into comments | On | Visit hot tweets (replies ≥ 5) for commenters |
| Warmup scrolls | 3 | Home feed scrolls before each session |
- Download and unzip the extension folder.
- Open Chrome and go to
chrome://extensions/. - Enable Developer mode (top-right toggle).
- Click Load unpacked and select the unzipped folder.
- Open x.com and log in to your account(s).
- Click the extension icon → click ↻ to detect accounts → select an account → Start.
That's it. The extension handles everything from there.
- Hashtag selection matters. Use niche-specific hashtags with active communities, not mega-tags like
#cryptoalone. Mix broad and specific:#defi #zkrollup #layer2 #airdropseason. - Start conservatively. Default limits (8–14 follows/likes per session, ~6 sessions/day) are safe for new accounts. Established accounts can gradually increase the range.
- Keep the X tab open. The extension needs an active x.com tab to interact with. It can be in the background — the tab visibility guard handles pauses automatically.
- Don't run other automation simultaneously. Running multiple tools at once multiplies signal patterns that rate-limit systems detect.
- Check the Sessions tab after a few runs to see which hashtags and sources yield the best candidate pools.
manifest.json Chrome extension config (Manifest V3)
background.js Service worker: scheduling, storage, multi-account queue
content.js Page script: all DOM interactions on x.com
popup.html/js Extension UI: dashboard, accounts, settings, logs
Storage keys (all local, never synced):
| Key | Contents |
|---|---|
config |
All user settings + runtime state |
stats |
Daily follow/like counts (last 30 days) |
followed |
{ username: timestamp } — dedup database (last 3000) |
liveLog |
Recent log messages (last 500) |
sessionLog |
Session history with per-user details (last 100 sessions) |
| Permission | Reason |
|---|---|
storage |
Save settings, logs, and follow history locally |
tabs |
Detect and communicate with the active x.com tab |
alarms |
Schedule sessions in the background |
scripting |
Inject content script into x.com pages |
host_permissions: x.com |
Required to run content scripts on the target site |
No network requests are made to any external server. All communication is between the extension's own scripts inside your browser.
- Requires Chrome (or Chromium-based browser). Firefox not supported (Manifest V3 differences).
- The X tab must remain open. The extension does not open new windows automatically.
- Account detection reads from the page DOM. If X changes their HTML structure, detection may need a selector update.
- CAPTCHA solving is manual — the extension pauses and waits, but cannot solve challenges automatically.
- This tool is designed for personal use with accounts you own and operate.
- Real
PointerEventclick sequence replacing simple.click() - CAPTCHA and rate-limit detection with auto-pause
- Tab visibility guard — pauses when tab is hidden
- Variable-speed scroll with ease-in/ease-out curve and reading pauses
- Post-action settle pause (1–2 sec) after every follow/like
- Multi-account round-robin mode
- Detailed session log with per-user breakdown
- Randomised action counts (configurable range)
- Single hashtag entry point — commenters collected from hot tweets automatically
- Multi-account chip selector
- Simplified storage (no external DB)
- Unified hashtag strategy
- Initial release