topic-filter-for-x add to chrome
chrome extension / mv3 / en+es / free

X mutes a topic for 24 hours ever.

Topic Filter removes politics, sports, crypto and anything else you are done with from your X timeline. Permanently, locally in your browser, and before X even renders the post.

no account actions · no X Premium needed · nothing leaves your device

/01

Removed before X can render them

X's timeline is virtualized: hiding a post after render leaves a blank gap. So this extension does not hide posts, it deletes them from the data on the way in.

graphql response match.js keywords your timeline dropped
01 · intercept

Catch the timeline response

intercept.js runs in the page's main world before X's own scripts and patches fetch and XMLHttpRequest. Every GraphQL timeline load (home, search, profiles, bookmarks) passes through it first.

02 · match

Drop what matches your topics

A shared matcher checks each post against your keyword lists and handles. Accent-insensitive and word-boundaried, so #IA matches but "diaria" never does. Matching entries are deleted from the response.

03 · render

X lays out a clean feed

X only ever sees the filtered data, so there is no blank gap, no jump, no flicker. The toolbar badge counts what you did not have to scroll past.

/02

Ten topics, all yours to edit

Every topic ships with bilingual starter keywords and optional @handles. Toggle them, tune them, or gut them. Changes apply live, there is no save button.

Politicspolitica
Sportsdeportes
Business & financenegocios y finanzas
Science & techciencia y tecnologia
Entertainment & artentretenimiento y arte
Artificial intelligenceinteligencia artificial
Gamesjuegos
Cryptocurrencycriptomonedas
Religionreligion
Videosvideosby media
Sidebar moduleshides "Live on X" + "Who to follow", keeps search and trendsbonus · off by default

click a toggle. that is the whole learning curve. the bonus toggle also clears X's "Live on X" and "Who to follow" sidebar boxes.

/03

Optional semantic filter, fully local

Keywords are literal, so "aped into some tokens" slips past a crypto list. Flip on the semantic filter and a small embedding model catches posts that are about a topic without using its words.

An AI that never phones home

The model runs inside the extension via WebGPU (WASM fallback). Tweet text is embedded and compared against topic prototypes and neutral anchors, and a post is filtered only when it beats the neutral baseline by a clear margin.

Off by default

Nothing downloads until you enable it. The model weights fetch once from Hugging Face and are cached. Weights are data, not code, and your tweets never leave the device.

  • tweet text sent to a servernever
  • runs onwebgpu / wasm
  • account actions takenzero
  • x premium requiredno
  • ui languagesenglish / spanish
  • pricefree
/04

Two minutes to a quieter feed

Install it, open x.com, watch the badge count what you no longer see.

Free on the Chrome Web Store. No sign up, no account linking.

subscribe to update emails if you want a note when a new version ships.

  1. Click Add to Chrome on the Chrome Web Store page.

  2. Open x.com. The muted topics are already gone.

  3. Click the toolbar icon to pick topics and tune keywords.