Skip to content

codepurse/Sieve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sieve

Clean Internet Suite — a privacy-first browser extension that quietly cleans up the modern web.

License: MIT Manifest V3 Version Runs on-device

Sieve blocks the stuff that makes the internet feel hostile — scams, gambling, dark patterns, toxic comments, popup hijacks, and endless feeds — and gives you back a bit of control. It runs entirely on your device: no account, no tracking, nothing leaves your browser.

Honestly, I made this because I got tired. The internet I grew up on felt fun and open. Somewhere over the years it turned into scams, nasty comments, endless feeds, and sites that trick you at every click. So I built the tool I wished existed. — monolab


Features

On-page cleanup

  • Bad Language Filter — masks profanity on pages (funny or family-safe styles, plus your own word list).
  • Toxic Comment Hider — collapses toxic comments on YouTube, Reddit, X/Twitter, and Disqus, with an optional on-device TensorFlow.js toxicity model.
  • Dark Pattern Blocker — neutralises fake countdown timers, guilt-trip copy, pre-checked boxes, and manufactured scarcity.
  • Cookie Auto-Reject — automatically rejects cookie-consent banners (built on the MIT-licensed Consent-O-Matic rules).
  • Popup & Click Hijack Blocker — blocks popups and click-hijacks by default, with a per-site allow prompt and whitelist.

Blocked websites

  • Gambling Blocker — blocks gambling and betting sites (with an opt-in Prediction Markets tier).
  • Financial Protection — opt-in tiers for crypto scams, trading/exchange sites, and MLM schemes.
  • Safety Shield — opt-in blocking for phishing/malware, cryptojacking, piracy, AI-slop content farms, fraud, gore/shock, and dating sites.
  • Custom block list + allowlist — a global block list and allowlist that apply across every blocker.
  • URL Shortener Resolver — expands or blocks shortened links before you land on them.

Wellbeing & control

  • Doomscroll Stopper — a daily time limit on endless feeds, with a gentle pause overlay.
  • Guardian self-lock — an optional PIN that gates weakening your protection (turning things off, allowlisting) while strengthening it stays free.
  • Protection Dashboard — a today/this-week breakdown of everything Sieve blocked for you.

Privacy

Sieve is built to be trustworthy by design:

  • No account, no sign-up, no telemetry, no tracking. Sieve only downloads files (blocklists, the optional toxicity model, and a settings-page announcement check) — it never uploads anything about you. See PRIVACY.md.
  • All processing is local, including the optional toxicity model.
  • Settings and stats live only in your browser's local storage.

Install (load unpacked)

The repository ships with the prebuilt bundles, so you can load it directly — no build step required.

  1. Download or clone this repository:
    git clone https://github.com/codepurse/Sieve.git
  2. Open chrome://extensions (or edge://extensions, brave://extensions).
  3. Enable Developer mode (top-right).
  4. Click Load unpacked and select the project folder.
  5. Pin Sieve from the toolbar and open its options to configure the modules.

Tested on Chrome / Chromium browsers (Chrome, Edge, Brave, Opera). A Firefox build target exists (npm run build:firefox) but is still experimental — the optional on-device toxicity model relies on the offscreen API, which Firefox does not support, so that one feature is skipped there.


Build (optional)

The extension itself is plain JavaScript loaded directly by the manifest. You only need Node.js if you want to regenerate the optional bundles.

npm install          # install dev/build dependencies

npm run build        # rebuild the optional TensorFlow.js toxicity model bundle
node build-cookie-engine.mjs   # rebuild the Consent-O-Matic cookie engine + rules

Rebuild only if you change the toxicity model or the cookie engine — otherwise the committed bundles are all you need.

Packaging for Chrome & Firefox

To produce clean, store-ready builds (and zips) for each browser, use the PowerShell build scripts. Each one copies only the runtime files into dist/<browser>/ — dev-only folders (node_modules/, src/, vendor/, test/, …) are excluded — verifies the required bundles are present, and optionally zips the result.

npm run build:chrome    # → dist/chrome/   + dist/sieve-chrome.zip
npm run build:firefox   # → dist/firefox/  + dist/sieve-firefox.zip
npm run build:all       # both of the above

The npm scripts run with -Bundle -Zip, so they regenerate the esbuild bundles first and then package. To run a script directly with different options:

# copy only (uses the committed bundles, no rebuild, no zip)
powershell -ExecutionPolicy Bypass -File .\build-chrome.ps1

# copy + zip, still using the committed bundles
powershell -ExecutionPolicy Bypass -File .\build-firefox.ps1 -Zip

# regenerate bundles, then copy + zip
powershell -ExecutionPolicy Bypass -File .\build-chrome.ps1 -Bundle -Zip

Chrome builds from manifest.json; Firefox builds from manifest.firefox.json (renamed to manifest.json in the output). Build output under dist/ is git-ignored.


Project structure

background/   Service worker + blockers (safety shield, financial protection, popup hijack, stats)
common/       Shared helpers (guardian, stats store, list store)
content/      Content scripts (bad language, dark patterns, toxic comments, doomscroll, …)
data/         Blocklists and word lists (gambling, MLM, profanity, cookie rules, …)
rules/        declarativeNetRequest rulesets
options/      Settings page (options.html / .css / .js)
popup/        Toolbar popup
pages/        Blocked-site interstitial + onboarding
offscreen/    Offscreen document for the toxicity model
vendor/       Vendored Consent-O-Matic (MIT) — do not edit by hand
src/          esbuild entry points for the optional bundles
dist/         Packaged builds produced by the build scripts (git-ignored)

Chrome loads manifest.json; the Firefox packaging uses manifest.firefox.json. build-chrome.ps1 / build-firefox.ps1 produce the per-browser bundles.


Contributing

Contributions are welcome! Please read:


Acknowledgements


License

Released under the MIT License. © 2026 Alfon.

About

Privacy-first extension that blocks harmful, deceptive & distracting sites and content — all on your device. No account.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors