unclutter
WXT browser extension where Jev classifies nonessential page elements and the extension saves reversible per-template hiding rules.
Overview
Unclutter is a WXT browser extension for Chrome, Chromium and Firefox by Kitze. When you analyze a page, it sends up to 60 bounded candidate descriptions (tag, structural signals, short text, position and match count) to Jev via Vercel AI Gateway or TypeSafe directly. Jev classifies which elements are nonessential, such as ads, promotions, subscription popups and cookie overlays, and the extension saves hiding rules for that page template.
Saved templates are reapplied on later visits without further model calls, so most browsing is free and offline. Rules use stable attributes rather than AI-generated CSS, are revalidated against the DOM before hiding, and can be paused, unchecked or forgotten. Analysis is manual by default, with an optional on-visit mode. No full URL, title, article body, form values, cookies or raw HTML is sent, though the README says redaction is not a guarantee of anonymity. It is MIT licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this page element nonessential clutter (ad, promotion, popup, cookie overlay)?(inferred) | clutter · keep |
How it works
- Collect up to 60 candidate element descriptions on the page.
- Jev classifies which are clutter.
- Save stable-selector hiding rules for the page template.
- Reapply rules on later visits without model calls.
Strengths
- One analysis per page template; later visits cost nothing.
- Reversible, user-controllable rules.
- Limited, redacted data sent to the provider.
Caveats
- Template matching is heuristic.
- Firefox builds are temporary without Mozilla signing.
- Key stored unencrypted in extension storage.
Getting started
git clone https://github.com/kitze/unclutter.git && bun install --frozen-lockfile && bun run build, then load .output/chrome-mv3 unpacked.At a glance
- Type
- Browser extension
- Status
- beta
- Language
- TypeScript
- Runtime
- WXT browser extension (Chrome, Firefox)
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Browser tooling: WXT extension where Jev decides per page element whether it is clutter, removing it under reusable template rules.
yibie/awesome-jevChrome / Firefox extension: Jev classifies nonessential page elements; local template rules hide them on later visits.
AnotiaWang/awesome-decision-modelsA browser extension using Jev to identify ads, promotions, and subscription popups and save reusable hiding rules.
logicrw/awesome-jev-projectsBrowser extension that uses Jev to identify page clutter and saves reusable, reversible hiding rules.
cobanov/awesome-jevWXT browser extension: Jev-powered page clutter removal with reusable template rules.
hellogumbo/awesome-jevBrowser extension that removes page clutter using Jev and reusable template rules.
MrJev/awesome-jev
Frequently asked questions
Does it call Jev on every page?
Only for new page templates; saved rules are reused without model calls.
What data is sent?
Up to 60 short candidate descriptions, not full URLs, titles, article bodies or cookies.
Which providers are supported?
Vercel AI Gateway or TypeSafe directly.
Related projects
Privacy-first X filtering extension with local keyword and account rules, plus an optional Jev second pass on replies no rule matched.
PluginproductionChrome extension that asks Jev, sentence by sentence, whether text is what the reader came for and strikes out the filler.
Browser extensionproductionJavaScriptBrowser extension that filters your X timeline by plain-language rules, with a decision model like Jev scoring every post by default.
Browser extensionproductionTypeScriptChrome extension page guide whose small typed decisions (request type, element to click, match or not) use Jev or local Laya.
ProjectbetaJavaScriptChrome extension that labels Weibo, Threads and X posts by topic and expression style using Jev and your own label dictionary.
Browser extensionbetaTypeScriptChrome extension that sorts Hacker News comments into user-defined buckets with one Jev Choice call per comment.
Browser extensionbetaJavaScript