Smart Tweet Filter - AI-Powered X/Twitter Feed Quality Control
Tired of your X/Twitter feed being flooded with low-quality content? Want to focus on valuable tweets while hiding the noise? X-Recommender uses AI to automatically analyze and score every tweet, makes low-quality content transparent or hidden, provides one-click translation from the score menu, and now supports Chrome built-in Gemini as a filtering engine with automatic fallback.
đ Core Features: â AI-Powered Scoring
Uses large language models (LLM) to analyze every tweet
Scores range from 0-100 based on information value, originality, clarity, and engagement potential
Works with popular LLM providers: OpenAI, DeepSeek, LM Studio, Ollama, llama.cpp, LocalAI
New in v2.1.0: optionally prefer Chrome built-in Gemini (Prompt API) for filtering scores
â Inline Translation from Score Menu
Click the score badge to open a quick action menu near each tweet
Translate both tweet text and quoted tweet text while keeping the original content visible
Default translation targets: English and Simplified Chinese
â Smart Transparency
Low-quality tweets automatically become transparent
High-quality content remains fully visible
Adjust the threshold to control filtering strictness
Keep per-tweet filter toggle and score detail actions in the score menu
â Fully Customizable
Create custom scoring prompts tailored to your preferences
Fine-tune minimum score threshold and opacity level
Configurable cache duration (1-30 days)
Translation settings are now in a dedicated tab
Select translation target languages in Settings (multi-select)
Choose translation engine strategy: Ask on first use / Chrome Translator / LLM
In Filter settings, detect whether Chrome built-in Gemini is available and choose whether to prefer it
â Privacy-Focused
All processing happens locally or through your configured API
No data collected by us
Tweet scores cached locally only
Chrome Translator API support can be checked in Settings before choosing engine strategy
When Gemini preference is enabled, filtering first tries Chrome built-in model; if unavailable/failed, it falls back to your configured external model automatically
đĄ Why do you need it?
Filter out gossip, spam, self-promotion, and clickbait automatically
Focus on high-quality, valuable content in your feed
Fully customizable to match your preferences
Works with local models (completely offline) or cloud APIs
From now on, your X/Twitter feed is no longer clutteredâbrowse with clarity and focus!
âNot just a filter, but your AI-powered feed assistantâ
![]()
Download the extension package (X-Recommender.zip)
Open Chrome and navigate to chrome://extensions/
Enable âDeveloper modeâ (top right corner)
Click âLoad unpackedâ and select the extracted folder
Install the extension
Click the extension icon to open settings
Configure your preferred LLM API (or use local models like LM Studio/Ollama)
Set your preferred score threshold and opacity/hide behavior
Configure translation targets/engine strategy and (optionally) enable Chrome built-in Gemini for filtering after support check
Browse X/Twitter as usualâX-Recommender works automatically!
Cloud APIs: OpenAI, DeepSeek, Anthropic
Local APIs: LM Studio, Ollama, llama.cpp, LocalAI
Custom: Any OpenAI-compatible API endpoint
Release Date: 2026-05-20
Added Chrome built-in Gemini (Prompt API) support check in Filter settings
Added a new toggle to prefer Chrome built-in Gemini for tweet filtering scores
Added automatic fallback to the configured external LLM when Chrome Gemini is unavailable or scoring fails
Kept existing filter behavior unchanged when the Gemini toggle is off
Added full i18n text coverage for the new Gemini filter settings and status labels
Release Date: 2026-05-19
Added a score-badge action menu: clicking the top-right score now opens a menu with quick translation targets (English and Simplified Chinese by default)
Added tweet translation for both main tweet text and quoted tweet text, while preserving original content and rendering translation blocks below
Added translation settings in popup: target languages are now multi-select and persisted
Added translation engine strategy options: Ask on first use, Force Chrome, or Force LLM
Added Chrome Translator API detection and status display in settings, with engine options enabled/disabled by availability
Changed single-click score behavior from direct toggle to menu entry, while keeping âToggle Filterâ and preserving double-click score details
Improved repeated translation behavior by reusing existing translation blocks for the same language, preventing duplicate stacking
Added complete i18n keys for translation UI and status/error messaging in both languages
Release Date: 2026-03-15
Added âClear Cacheâ button to manually clear all cached scores
Added localization support for the new cache clearing feature
Release Date: 2026-03-15
Improved LM Studio compatibility for Qwen-style models by making the no-thinking fallback path more robust
Prevented score parsing from accidentally reading reasoning step numbers as final scores
Added an LM Studio setup hint recommending non-thinking models first
Added guidance for advanced users to disable thinking via LM Studio Prompt Template settings
Release Date: 2026-03-13
Fix issue where preset APIs like Ollama couldnât be added after changing URL to LAN IP (preset values overriding user input)
Preset API name and URL now prioritize user input
Thread pass-through optimization: tweets in the same conversation now reuse the first scored result, avoiding repeated scoring for follow-up tweets
Improved conversation detection by prioritizing conversation_id grouping (with safe fallback logic), covering mixed-author thread cases like repost + comment chains
Reduced scroll flicker by disabling opacity transition on cached re-apply paths during timeline refresh/scroll
Moved adaptive viewport timeout controls under hide mode only; these options are now shown only when filter mode is set to hide
Release Date: 2026-03-04
Pre-hide unscored tweets: New tweets stay hidden until scored, then are shown or hidden by score (reduces timeline jumps)
Changed batch size from 5 to 1 to lower timeline jump probability
Changed temperature from 0.1 to 0 for more stable scoring
Added cache check before scoring to avoid duplicate requests
Added viewport detection to prevent large-scale node removal outside viewport causing scroll anchor jumps
Optimized tweet ID extraction logic
Release Date: 2026-03-03
Added support for multiple models - you can now configure and switch between multiple LLM APIs
Added thinking mode auto-disable for Ollama and OpenAI compatible APIs
Fixed issue where adding a second model would not display in the list (race condition and storage sync delay)
Release Date: 2026-02-27
Fixed hide mode filtering to only use the hide threshold, preventing overlap with opacity behavior
Improved tweet text fallback extraction (innerText || textContent) to reduce unstable hide/show flicker
Updated extension version to 1.5.1
Release Date: 2026-02-21
ID Whitelist: Add trusted users to a whitelist - their tweets will not be filtered and display as â
Filter Mode: Choose between opacity (fade) or hide completely
No-Text Tweet Scoring: Option to score tweets with only images/videos
Feedback Link: Added feedback and follow link in the footer
Three-Tab Settings: Reorganized settings into API, Filter, and Whitelist tabs
Fixed whitelist matching to correctly extract username from author text
Unified blue background for all scores (removed color variation by score)
Adjusted retweet badge position
Prevented duplicate API entries
Removed API config from filter tab
Redesigned app icon with transparent background
Added multi-language support for Chrome Web Store
Improved transparency controls
Added support for local LLM models (LM Studio, Ollama, llama.cpp)
Introduced customizable scoring prompts
Improved caching mechanism
Added opacity controls for low-quality tweets
Improved performance and stability
Initial release
Basic tweet scoring with OpenAI API support