Your feed, on your terms.
A Chrome extension that filters X posts and replies with preferences you write in plain language.
Describe what you want to see, what you would rather skip, and the exceptions that matter. Sift reviews posts as you scroll, quietly collapses the ones that don’t fit, and remembers the feedback you give it.
- Write naturally. Explain your interests and boundaries in your own words.
- Make replies useful. Filter reply threads and identified replies in your feed. Keep useful criticism and questions while skipping the kinds of filler you dislike.
- Understand each decision. Open a hidden item or Review feed to see its matching preference, then restore it if Sift got it wrong.
- Remember the details. Open a post’s three-dot More menu and choose Tune feed or Tune reply to explain why you want more or less of something. Your comment becomes a removable preference rule for future decisions.
- Stay in control. Reveal a post once, pause filtering, change its scope, and inspect local statistics.
You need Chrome 120 or newer and an OpenAI API key with access to the Decisions API and gpt-6-luna. OpenAI API usage is billed separately from a ChatGPT subscription.
- Download Sift as a ZIP and extract it.
- Open
chrome://extensionsin Chrome and turn on Developer mode. - Click Load unpacked. Choose the extracted
sift-mainfolder containingmanifest.json. - In Sift’s Connection page, save your OpenAI API key, then click Test connection. The test makes a small API request.
- Open Preferences, describe your ideal feed, and click Save preferences.
- Open your X Home feed, or refresh an existing X tab. Pin Sift from Chrome’s extensions menu for quick access.
If you prefer Git:
git clone https://github.com/dackerman/sift.gitThen load the cloned sift folder using the same Load unpacked steps. No build step or dependency installation is needed to use the extension.
I like robotics, useful research, practical programming, and people building things.
Skip political rage bait, engagement farming, and crypto promotions.
Keep rigorous policy research, even when it discusses politics.
In replies, hide generic AI-style filler, hate, and comments that add nothing.
Keep useful criticism, genuine questions, and first-hand experience in replies.
These are examples, not built-in filtering rules. General preferences apply to posts and replies. Mention replies naturally when a preference should apply only there; no special syntax is required.
Hidden items become a small Filtered row that follows X’s theme. Click the row to see the matching preference and your options:
- Show once reveals that item temporarily without changing your preferences.
- Keep posts/replies like this restores it and saves your explanation as a remembered rule.
On a visible post or reply, open X’s three-dot More menu and choose Tune feed or Tune reply to explain why you want more or less of it.
Review feed lets you search recent decisions, inspect their reasons and reply context, and correct mistakes. Your remembered rules appear below your main preferences, where you can remove them individually. Feedback adds instructions and examples to later requests; it does not train the model.
By default, Sift filters the Home feed and replies in post conversations. Filter replies works independently of Limit feed filtering to Home. Conversation filtering preserves the focused post and earlier conversation context. Direct messages, notifications, and settings are excluded. You can pause from the popup, dashboard, or Sift pill on X.
Download the latest ZIP and replace your existing extension files in the same folder, or run git pull in your clone. Click Sift’s Reload button at chrome://extensions, then refresh your X tabs. Keeping the same folder preserves your local preferences.
Sift calls OpenAI directly. There is no Sift server, telemetry, or Chrome Sync. Your API key, preferences, feedback, recent decisions, and statistics are stored locally in your Chrome profile. The API key is not encrypted by Sift.
Filtering sends captured post/reply text, available author information, context and image descriptions, your preferences, and remembered feedback examples to OpenAI. Replies can include an excerpt of the focused conversation post. OpenAI handles that data under your account’s API terms. Read the full privacy notes.
Requests use the OpenAI Decisions API with gpt-6-luna. Sift shows request and token counts; OpenAI bills your API project. An API key is required for AI filtering, even if you already pay for ChatGPT.
Filtering happens asynchronously, so an item can appear briefly before it is checked. API failures, uncertain hide decisions, and conversation boundaries Sift cannot identify safely leave content visible. X can change its page structure, which may affect detection.
Sift evaluates available text and image descriptions, not image pixels or video. “AI-style” preferences describe observable writing quality; writing style cannot prove who or what wrote a reply. Decision reasons identify the selected preference, rather than providing a generated explanation of the model’s reasoning.
Recent history is limited to 400 items and may be pruned earlier for storage space. Up to 100 remembered rules are retained. For counter definitions, limits, architecture, and testing, see the development guide.
Bug reports and improvements are welcome. Include the Chrome version and steps to reproduce; remove API keys and private feed content from anything you share. See development and testing to work on Sift locally.
Artwork and generation notes are documented in Branding.
Released under the MIT License. Sift is an independent project and is not affiliated with X or OpenAI.
