尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證uFeed Browser Extension
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Name the topics you want. uFeed blurs the rest of your feed.
A browser extension for X, LinkedIn and Reddit, on Chrome and Firefox. The model
runs on your device. No account, no server, no cloud AI, and no post text ever
leaves your browser.
On Chrome, the default multilingual model uses one shared offscreen engine across
feed tabs; Firefox and the optional English model keep the per-tab iframe engine.
Both paths score on-device and keep page access in the content script.
Most feed filters ask what you want to get rid of. That list never ends: there is
always one more thing to block.檢視完整 README ↗Name the topics you want. uFeed blurs the rest of your feed.
A browser extension for X, LinkedIn and Reddit, on Chrome and Firefox. The model runs on your device. No account, no server, no cloud AI, and no post text ever leaves your browser.
On Chrome, the default multilingual model uses one shared offscreen engine across feed tabs; Firefox and the optional English model keep the per-tab iframe engine. Both paths score on-device and keep page access in the content script.
Most feed filters ask what you want to get rid of. That list never ends: there is always one more thing to block.
Choose what you want to keep, block, or both. To keep posts about subjects you care about, add topics one per line:
software engineering, programming
machine learning research
video games, game design
Posts about your topics stay as you scroll; other posts are blurred, not deleted. You can also add words or phrases to a keyword blacklist, which blurs matching posts. The blacklist works by itself or alongside topics. With only a blacklist, posts without a match stay visible. One click (or Enter) reveals a blurred post.
uFeed compares the meaning of a post with your topics. It does not reason about the post. A large model in the cloud can judge things like sarcasm or "AI news but not hype" better than a model small enough for your laptop can. uFeed gives up some of that in exchange for privacy, speed, and a filter that behaves the same way every time, so a wrong call can be explained and corrected. How it works has the reasoning.
Chrome — Chrome Web Store.
Firefox — build from source for now (below).
Then open the toolbar popup, add a topic, and visit x.com, linkedin.com or reddit.com. The model downloads once (~197 MB by default) and is cached by the browser. Nothing blurs until it has loaded. If you prefer the smaller English-only model, choose it under Model in the popup instead (a one-time ~33 MB download).
Node 22.12+ and npm. Nothing else.
npm install
npm run build # -> .output/chrome-mv3 and .output/firefox-mv3
Chrome — chrome://extensions, turn on Developer mode, Load unpacked, pick
.output/chrome-mv3.
Firefox — about:debugging#/runtime/this-firefox, Load Temporary Add-on,
pick .output/firefox-mv3/manifest.json.
Working on it? Use npm run watch instead of npm run dev, and see
docs/development.md for why.
npm run check # format, typecheck, tests, both builds
Tests never touch the network or a live feed. Site adapters run against captured fixture HTML, so a vendor DOM change fails as a red test instead of a silent no-op in production.
┌─ entrypoints/ ─────────────────────────────────────────────────────────────┐
│ wires: content · popup · background · iframe · offscreen engine │
│ ┌─ adapters/ · platform/ ──────────────────────────────────────────────┐ │
│ │ X · LinkedIn · Reddit storage · messaging · model runtime │ │
│ │ ┌─ feed/ ────────────────────────────────────────────────────────┐ │ │
│ │ │ the page: find posts, score them, blur, reveal │ │ │
│ │ │ ┌─ core/ ──────────────────────────────────────────────────┐ │ │ │
│ │ │ │ the rules: scoring · blur policy · settings │ │ │ │
│ │ │ └──────────────────────────────────────────────────────────┘ │ │ │
│ │ └────────────────────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
imports point inward only
uFeed follows the Dependency Rule from Clean Architecture: imports only point inward.
The rules in core/ know nothing of the browser, and the page logic in feed/ knows nothing of the extension, so a new site never touches the filter.
npm run check fails any import that points outward; wiki-llm/layers.md says where new code goes.
Execution stays separate from these code layers: the content script reads and updates the feed DOM; the iframe runs the per-tab engine; Chrome's offscreen page runs one shared Gemma engine. The background creates that page and connects tabs; it does not score posts. Firefox and Chrome's optional English model use the iframe path.
docs/how-it-works.md — where it runs, the model, and
every control, in plain language.docs/development.md — running, debugging and testing.docs/android.md — Firefox for Android.docs/privacy-policy.md — what it reads, stores and sends.CONTRIBUTING.md. Security or
privacy problem? SECURITY.md says how to report it privately.wiki-llm/ — the authoritative model of the code. Start at
the index. Agent rules are in AGENTS.md.Copyright © 2026 Dephelion - Julio Cesar Martin. GPL-3.0.
Use it, change it, share it. If you distribute a modified version, you must publish its source under the same license.
The models are not part of this repository and carry their own terms. Your browser downloads the one you pick from Hugging Face: e5-small-v2 is MIT-licensed, and EmbeddingGemma is under Google's Gemma Terms of Use.