Skip to content

jev-adblock

GPL-3.0 Chrome MV3 ad blocker that combines community filter rules with Jev semantic judgments on candidate elements.

ProjectbetaGPL-3.0

Overview

Jev Ad Block by lingengyuan is a Chrome Manifest V3 extension, documented in Chinese, that layers semantic judgment on top of conventional blocking. Network rules block ad requests using declarativeNetRequest rulesets built from hand-written ad networks plus EasyList China and CJX's Annoyance List. Detection runs in layers: strong CSS markers, community cosmetic rules, site detectors and labels, overlay geometry, and scored candidates, with the last three sent to Jev for a final call. Overlay judgment distinguishes necessary UI such as login, consent and payment from ads.

High-confidence candidates are hidden optimistically and restored if Jev says they are not ads; verdicts are cached per site and slot for seven days. Defaults include an ad threshold of 0.75, a main-content guard of 0.55 and an hourly budget of 30,000. Without a key or on failures it falls back to local rules. The README reports batches of 1 and 64 candidates taking 364 ms and 406 ms. Candidate text and features may be sent to TypeSafe, but not page URLs or titles. It is GPL-3.0 licensed with unit tests and a ruleset linter.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this candidate element an ad?(inferred)yes · no
Yes / noIs this element part of the main content (guard against hiding it)?(inferred)yes · no

How it works

  1. Network rules block known ad requests
  2. Content scripts find candidates through layered detectors
  3. Candidates are sent to Jev in batches
  4. Hide above the 0.75 ad threshold, guarding main content at 0.55
  5. Cache verdicts for 7 days; fall back to local rules on failure

Strengths

  • Works without a key using community rules
  • Optimistic hiding with automatic restore
  • Batches of 64 candidates in about 406 ms per the README
  • Privacy: no page URLs or titles sent

Caveats

  • Documentation in Chinese
  • Candidate text sent to TypeSafe may include personal data

Getting started

`npm run build`, then load the dist/ folder unpacked in chrome://extensions and add a TypeSafe key in settings.

At a glance

Type
Project
Status
beta
Language
JavaScript
Runtime
Chrome extension (MV3)
Has code
yes
Has tests
yes
License
GPL-3.0

Use cases and integrations

How curated lists describe it

Frequently asked questions

How is it different from the other jev-adblock?

It combines community filter lists and network rules with Jev, rather than relying on Jev alone.

Does it work without an API key?

Yes, using local rules, network blocking and CSS hiding.

What data is sent to Jev?

Candidate text up to 240 characters, element features and outbound domains, not page URLs or titles.

Related projects

  • Privacy-first X filtering extension with local keyword and account rules, plus an optional Jev second pass on replies no rule matched.

    Pluginproduction
  • Chrome extension that asks Jev, sentence by sentence, whether text is what the reader came for and strikes out the filler.

    Browser extensionproductionJavaScript
  • Browser extension that filters your X timeline by plain-language rules, with a decision model like Jev scoring every post by default.

    Browser extensionproductionTypeScript
  • Chrome extension page guide whose small typed decisions (request type, element to click, match or not) use Jev or local Laya.

    ProjectbetaJavaScript
  • Chrome extension that labels Weibo, Threads and X posts by topic and expression style using Jev and your own label dictionary.

    Browser extensionbetaTypeScript
  • Chrome extension that sorts Hacker News comments into user-defined buckets with one Jev Choice call per comment.

    Browser extensionbetaJavaScript