Skip to content
MrJev

unclutter

Browser extension that removes page clutter using Jev and reusable template rules.

View on GitHub →

Hands-on review

A carefully designed browser extension that learns reusable hiding rules per page type. Its privacy claims held up in our tests; you install it from source.

Good for

  • Readers who want ads, cookie banners, and share bars hidden without a crowd-sourced blocklist
  • Anyone who wants to see exactly which rules apply to a site, and turn any of them off
  • Developers studying how to keep page data minimal in a Jev request

Watch out for

  • Not in any extension store: you build it and load it unpacked
  • Needs access to every site, and your API key is stored unencrypted in extension storage
  • Hides elements visually only: ads still load and track, and cookie banners aren't answered

Tested Sep 19, 2026 at 9ef9beccc1e5 · v0.3.0 built from source, loaded into Chromium in Docker, real Jev calls against a local test page

What it does

Unclutter is a browser extension for Chromium browsers and Firefox from Kitze. When you analyze a page, it collects up to 60 candidate elements that look like clutter, and Jev puts each one in a category: keep, ad, cookie, promotion, newsletter, social, or uncertain. Elements Jev is confident about become hiding rules, saved for that site’s page template, so other articles on the same site are cleaned without another request.

The design is conservative throughout. Main content, navigation, the main heading, forms, login, payment, and paywalls are protected in code and never become candidates. Jev never writes selectors or code: it only picks a category, and the extension uses stable selectors it built itself. An element is hidden only when both the chosen answer’s probability and Jev’s confidence are at least 0.9. Hiding is reversible, and every rule can be turned off from the popup.

Setup

There’s no store listing. You need Bun and Node 22.12 or newer:

git clone https://github.com/kitze/unclutter.git && cd unclutter
bun install --frozen-lockfile
bun run build    # then load .output/chrome-mv3 as an unpacked extension

In the popup, choose TypeSafe or Vercel AI Gateway, paste a key, and pick Manual (the default, which only calls Jev when you click Analyze) or On page visit. Firefox 140+ can load a temporary build. A signed Firefox add-on isn’t available.

Using it

  • The code checks pass. Type checking, lint, and all 21 tests passed, and both the Chromium and Firefox builds completed. The bundled check script currently stops early because the auto-synced README fails the formatter, so run the steps individually.
  • It worked end to end. We loaded the built extension into Chromium, turned on On page visit, and opened a local test article with a cookie banner, an ad slot, a share bar, a sponsored links box, and a newsletter signup form. It hid the cookie banner, the ad slot, and the share bar. The article, its heading, navigation, and the newsletter box with its form were left alone, and the sponsored box stayed visible too. It leans toward keeping things. After a reload, the saved rules applied again straight away.
  • The request is as small as promised. Using the extension’s own code, we printed the exact request for that page. It contained only the page type and the four candidates, each with its tag, class and ID names, a short text snippet, and a position. The page title, full URL and query string, article text, and link targets were all absent, and an email address and phone number in the ad text came through as [email] and [number].

Permissions and data

  • It runs on every site. It asks for access to all HTTP and HTTPS pages so saved rules can reapply on later visits. That’s broad, and inherent to what it does.
  • Only snippets leave your browser. Analysis sends up to 60 short candidate descriptions to TypeSafe or Vercel, and nothing at all when a saved rule already covers the page. The README warns that redaction isn’t a guarantee of anonymity, so don’t analyze sensitive pages.
  • Automatic mode spends money. On page visit sends a request for every new page template you open. It’s off by default and never retries a failed analysis automatically.
  • The key is stored unencrypted. It sits in local extension storage, isn’t synced, and per the README is never passed to page scripts or websites.
  • Hiding isn’t blocking. Ads still load and can track you, and hiding a cookie banner doesn’t reject cookies. The README says both clearly. Use Pause when you need the consent controls.

Maintenance

Published by Kitze on September 17 and 18, with four code commits and several README syncs. It’s MIT licensed with a good test suite, but no CI. One issue is open. The TypeSafe option exists because a user asked for it in an issue, and the author added it the same day. It reads as a polished personal project rather than a supported product, and there’s no store release yet.

Verdict

Unclutter is one of the most privacy-conscious Jev tools we’ve reviewed. It sends the minimum, protects the parts of a page that matter, and learns rules once per page type instead of calling the model on every visit. If you’re comfortable loading an unpacked extension, it’s a pleasant way to hide cookie banners and ad clutter, and worth reading as a model of how to shrink what a Jev request contains. Pair it with a real content blocker if you want ads and trackers stopped, not just hidden.

For other browser tools, see jev-browser and jev-ultrafast. Our best Jev tools roundup compares them.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Sep 19, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Apps & Browser Extensions

Jev Chat Assistant

★ 8.2k▲ 105

jev-chat/jev-chat-jarvis

Android chat assistant that reads the conversation on screen through the accessibility service, has Jev judge the other person's intent and the risk, and fills in a drafted reply that you send yourself. Chinese and English editions.

Kotlin

OpenMuse

★ 6.1k▲ 479

CopilotKit/openmuse

CopilotKit's self-hosted personal agent with its own browser, terminal and files; Jev decides whether a reply becomes a clarification panel, a comparison of options or plain prose, and overrides the agent only when confident. Alpha.

TypeScriptReviewed

Shapeshift

★ 1.1k▲ 16

anishfn/shapeshift

One text box that turns what you type into the right small interface, an event card or a checklist or a bill split, with Jev choosing which; falls back to rules when no key is set.

TypeScriptReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.