Skip to content
mort3zaPublic

About

Chrome extension to find and bulk-block X (Twitter) accounts whose names match your rules.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Teq

English · فارسی

A Chrome extension that finds X.com (Twitter) accounts by their display name (or, optionally, their @handle) and blocks them for you — safely, in the background, while you browse.

You write a few rules (words or emoji). As you scroll X, Teq quietly collects everyone whose display name matches — and, if you turn on Match @username, their handle too. When you're ready, you review the list and block them in one click. Teq then blocks them one at a time, slowly, to stay within X's rate limits.

Heads up: Blocking is hard to undo at scale. Teq always lets you review and edit the list before anything happens — nothing is blocked automatically.


Install

A ready-to-use build is attached to every release, so you don't need any tools.

  1. Download teq-*.zip from the latest release, then unzip it.
  2. Open chrome://extensions in Chrome.
  3. Turn on Developer mode (top-right).
  4. Click Load unpacked and select the unzipped folder.

The Teq icon appears in your toolbar. You're ready.

Prefer to build it yourself? See Build from source. The full project is also on each release page as Source code (zip).


How to use it

1. Set your rules. Click the toolbar icon and add words or emoji — one per line. A match is a case-insensitive substring, checked against the display name (and the @handle too, if you enable Match @username in Options).

1b. Or match what they post. Add whole phrases — one per line — to Phrases to match inside tweets. The author of any tweet whose text contains one of them is collected too, and the tweet itself is kept as a reference.

2. Browse X. Leave auto-collect on (the default) and just scroll. Teq scans the page every few seconds and adds matching accounts to your collected list. No clicking required.

2b. Or let Teq scroll for you. This is off by default — turn on Enable Auto-scroll in Options → Advanced first, and read its warning. Then open an X page with a long list (a timeline, search results, replies, followers) and click Auto-scroll in the popup. Teq scrolls the page at a slow, steady pace and collects matches as it goes. A small pill at the bottom shows how many it found. It stops when you click Stop, when you scroll, click or press a key yourself, or when the list ends.

3. Review and block. Open Review from the popup for a full-page list of everyone collected. Filter by language, deselect anyone you want to keep, then hit Block selected. Teq blocks them one by one in the background — keep the X tab open and watch the progress.

That's the whole loop: rules → collect → review → block.


How it stays within X's limits

X limits how fast an account can block, so Teq deliberately goes slow.

  • Paced — waits ~30s between blocks (plus a little random jitter).
  • Rate-capped — stops after 40 blocks/hour or 250/day by default. These are rolling windows tracked against your whole block history, not a single run, so they hold across reloads.
  • Self-resuming — when a cap is hit, the run waits and continues on its own once the window clears. The popup shows a "resumes in…" countdown.
  • Resilient — a run survives tab reloads and browser restarts; it picks up where it left off. Just keep (or reopen) an X tab so it has somewhere to run.
  • Backs off on pushback — if X returns a 401/403/429, the run pauses (it doesn't crash) and keeps the rest queued. Resume from the popup after a break.

A dot on the toolbar icon shows the state: green = blocking, yellow = paused. Teq never blocks your own account.


Settings

Edit your rules and the auto-collect toggle right in the popup. The full set lives on the Options page.

Setting What it does Default
Words Substrings to match against display names (emoji work too) empty
Tweet phrases Phrases to match inside tweet text; the tweet's author is collected empty
Auto-collect Scan the page for matches automatically as you scroll on
Scan interval Seconds between automatic scans 3
Pacing Base seconds between blocks (+ up to 30% jitter) 30
Max per hour Cap on blocks in any rolling 60 min (0 = no limit) 40
Max per day Cap on blocks in any rolling 24 h (0 = no limit) 250
Language Interface language — English or Persian (فارسی), switchable live auto¹
Persian/Arabic matching Fold Arabic ي/ك ↔ Persian ی/ک and Arabic-Indic ↔ Persian digits when matching off
Match @username Also match your words against the @handle, not just the display name off
Enable Auto-scroll Show the Auto-scroll button in the popup (Advanced; read the warning first) off

¹ Defaults to Persian if your browser's UI language is Persian, otherwise English.

Rules sync across your Chrome profile. Your collected list and block log stay on this device (the log keeps the last 500 entries). On the Options page you can export/import your config as JSON — handy for backup or sharing rules.


The pages

  • Popup — edit rules, toggle auto-collect, see the collected count and live run progress, open Review.
  • Review — the full-page block screen, injected into X: language filter, select/deselect, an ℹ button that opens the tweet an account was collected from, and Block selected.
  • Options — every setting, plus config export/import.
  • Collected — search, page through, or clear your collected list.
  • Blocks — search, page through, or clear your block log.

Build from source

Built with Bun.

bun install
bun run build     # → dist/
bun run watch     # rebuild on change
bun test

After rebuilding, click the reload ↻ icon on the extension card in chrome://extensions to load the new code.

No signing key needed. You don't need key.pem to build or run Teq — it's the maintainer's private key for publishing signed releases and isn't part of the repo. The public half is already in manifest.json ("key"), which is all Chrome needs to give your unpacked build a stable ID.


Good to know

  • Blocks use X's own blocks/create API — the exact call the site makes when you click "Block." It runs from the X tab, so your cookies and CSRF token ride along just like the real app.
  • The bearer token in the code is X's public web-app token, not a secret.
  • Collecting only sees what's currently rendered — scroll to load more accounts, and they get picked up on the next scan.

Disclaimer

Teq is an independent, open-source project. It is not affiliated with, endorsed by, or supported by X Corp.

Teq runs inside your own logged-in X tab and sends the same requests the x.com website sends. It does not use X's official developer API. X's Terms of Service limit automated use of the site and access through interfaces other than the ones X publishes, so X may treat some of what Teq does as outside those terms. X can limit, lock, or suspend accounts at its own discretion.

You are responsible for how you use Teq on your account. Use it at your own risk.

About

Chrome extension to find and bulk-block X (Twitter) accounts whose names match your rules.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages